[lustre-devel] [PATCH 19/38] lustre: obdclass: swap obd device attrs and default_attrs

James Simmons jsimmons at infradead.org
Thu Aug 16 20:10:22 PDT 2018


Currently the obd_ktype sets its default_attr field to the
universal obd_def_attr and attaches additional attributes.
Reverse this by making obd device specific attributes the
default and add obd_def_attr as the extra.

Signed-off-by: James Simmons <uja.ornl at yahoo.com>
WC-bug-id: https://jira.whamcloud.com/browse/LU-8066
Reviewed-on: https://review.whamcloud.com/28948
Reviewed-by: John L. Hammond <jhammond at whamcloud.com>
Reviewed-by: Sonia Sharma <sharmaso at whamcloud.com>
Reviewed-by: Oleg Drokin <green at whamcloud.com>
Signed-off-by: James Simmons <jsimmons at infradead.org>
---
 drivers/staging/lustre/lustre/obdclass/lprocfs_status.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c
index c032458..d370fbb 100644
--- a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c
+++ b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c
@@ -989,7 +989,7 @@ int lprocfs_rd_connect_flags(struct seq_file *m, void *data)
 }
 EXPORT_SYMBOL(lprocfs_rd_connect_flags);
 
-static struct attribute *obd_def_attrs[] = {
+static const struct attribute *obd_def_attrs[] = {
 	&lustre_attr_blocksize.attr,
 	&lustre_attr_kbytestotal.attr,
 	&lustre_attr_kbytesfree.attr,
@@ -1009,7 +1009,6 @@ static void obd_sysfs_release(struct kobject *kobj)
 }
 
 static struct kobj_type obd_ktype = {
-	.default_attrs	= obd_def_attrs,
 	.sysfs_ops	= &lustre_sysfs_ops,
 	.release	= obd_sysfs_release,
 };
@@ -1019,6 +1018,7 @@ int lprocfs_obd_setup(struct obd_device *obd,
 {
 	int rc = 0;
 
+	obd_ktype.default_attrs = attrs->attrs;
 	init_completion(&obd->obd_kobj_unregister);
 	rc = kobject_init_and_add(&obd->obd_kobj, &obd_ktype,
 				  obd->obd_type->typ_kobj,
@@ -1026,12 +1026,10 @@ int lprocfs_obd_setup(struct obd_device *obd,
 	if (rc)
 		return rc;
 
-	if (attrs) {
-		rc = sysfs_create_group(&obd->obd_kobj, attrs);
-		if (rc) {
-			kobject_put(&obd->obd_kobj);
-			return rc;
-		}
+	rc = sysfs_create_files(&obd->obd_kobj, obd_def_attrs);
+	if (rc) {
+		kobject_put(&obd->obd_kobj);
+		return rc;
 	}
 
 	obd->obd_debugfs_entry = debugfs_create_dir(obd->obd_name,
@@ -1049,6 +1047,8 @@ int lprocfs_obd_cleanup(struct obd_device *obd)
 
 	debugfs_remove_recursive(obd->obd_debugfs_entry);
 
+	sysfs_remove_files(&obd->obd_kobj, obd_def_attrs);
+
 	kobject_put(&obd->obd_kobj);
 	wait_for_completion(&obd->obd_kobj_unregister);
 
-- 
1.8.3.1



More information about the lustre-devel mailing list