}
LUSTRE_RW_ATTR(changelog_deniednext);
-static ssize_t sync_perm_show(struct kobject *kobj, struct attribute *attr,
- char *buf)
+static ssize_t sync_permission_show(struct kobject *kobj,
+ struct attribute *attr, char *buf)
{
struct mdd_device *mdd = container_of(kobj, struct mdd_device,
mdd_kobj);
return sprintf(buf, "%d\n", mdd->mdd_sync_permission);
}
-static ssize_t sync_perm_store(struct kobject *kobj, struct attribute *attr,
- const char *buffer, size_t count)
+static ssize_t sync_permission_store(struct kobject *kobj,
+ struct attribute *attr,
+ const char *buffer, size_t count)
{
struct mdd_device *mdd = container_of(kobj, struct mdd_device,
mdd_kobj);
return count;
}
-LUSTRE_RW_ATTR(sync_perm);
+LUSTRE_RW_ATTR(sync_permission);
static ssize_t lfsck_speed_limit_show(struct kobject *kobj,
struct attribute *attr, char *buf)
struct mdd_device *mdd = container_of(kobj, struct mdd_device,
mdd_kobj);
- return lfsck_get_speed(NULL, buf, mdd->mdd_bottom);
+ return lfsck_get_speed(buf, mdd->mdd_bottom);
}
static ssize_t lfsck_speed_limit_store(struct kobject *kobj,
&lustre_attr_changelog_deniednext.attr,
&lustre_attr_lfsck_async_windows.attr,
&lustre_attr_lfsck_speed_limit.attr,
- &lustre_attr_sync_perm.attr,
+ &lustre_attr_sync_permission.attr,
NULL,
};
{
struct mdd_device *mdd = container_of(kobj, struct mdd_device,
mdd_kobj);
+ struct obd_device *obd = mdd2obd_dev(mdd);
+
+ debugfs_remove_recursive(obd->obd_debugfs_entry);
+ obd->obd_debugfs_entry = NULL;
complete(&mdd->mdd_kobj_unregister);
}
init_completion(&mdd->mdd_kobj_unregister);
rc = kobject_init_and_add(&mdd->mdd_kobj, &mdd->mdd_ktype,
- type->typ_kobj, "%s", name);
+ &type->typ_kobj, "%s", name);
if (rc)
return rc;
void mdd_procfs_fini(struct mdd_device *mdd)
{
- struct obd_device *obd = mdd2obd_dev(mdd);
-
kobject_put(&mdd->mdd_kobj);
wait_for_completion(&mdd->mdd_kobj_unregister);
-
- if (!IS_ERR_OR_NULL(obd->obd_debugfs_entry))
- ldebugfs_remove(&obd->obd_debugfs_entry);
}