Skip to contentSkip to conversation

bcache: use default_groups in kobj_type

PATCH In review Greg Kroah-Hartman 2 participants 4 messages Jan 6, 2022 – Jan 10, 2022 bcache (block layer cache)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 bcache: use default_groups in kobj_type

There are currently 2 ways to create a set of sysfs files for a kobj_type, through the default_attrs field, and the default_groups field. Move the bcache sysfs code to use default_groups field which has been the preferred way since aa30f47cf666 ("kobject: Add support for default attribute groups to kobj_type") so that we can soon get rid of the obsolete default_attrs field.

---
 drivers/md/bcache/stats.c |  3 ++-
 drivers/md/bcache/sysfs.c | 15 ++++++++++-----
 drivers/md/bcache/sysfs.h |  2 +-
 3 files changed, 13 insertions(+), 7 deletions(-)
drivers/md/bcache/stats.c +2 -1
index 4c7ee5fedb9d..68b02216033d 100644
@@ -78,7 +78,7 @@ static void bch_stats_release(struct kobject *k)
 {
 }
 
-static struct attribute *bch_stats_files[] = {
+static struct attribute *bch_stats_attrs[] = {
 	&sysfs_cache_hits,
 	&sysfs_cache_misses,
 	&sysfs_cache_bypass_hits,
@@ -88,6 +88,7 @@ static struct attribute *bch_stats_files[] = {
 	&sysfs_bypassed,
 	NULL
 };
+ATTRIBUTE_GROUPS(bch_stats);
 static KTYPE(bch_stats);
 
 int bch_cache_accounting_add_kobjs(struct cache_accounting *acc,
drivers/md/bcache/sysfs.c +10 -5
index 1f0dce30fa75..d1029d71ff3b 100644
@@ -500,7 +500,7 @@ STORE(bch_cached_dev)
 	return size;
 }
 
-static struct attribute *bch_cached_dev_files[] = {
+static struct attribute *bch_cached_dev_attrs[] = {
 	&sysfs_attach,
 	&sysfs_detach,
 	&sysfs_stop,
@@ -543,6 +543,7 @@ static struct attribute *bch_cached_dev_files[] = {
 	&sysfs_backing_dev_uuid,
 	NULL
 };
+ATTRIBUTE_GROUPS(bch_cached_dev);
 KTYPE(bch_cached_dev);
 
 SHOW(bch_flash_dev)
@@ -600,7 +601,7 @@ STORE(__bch_flash_dev)
 }
 STORE_LOCKED(bch_flash_dev)
 
-static struct attribute *bch_flash_dev_files[] = {
+static struct attribute *bch_flash_dev_attrs[] = {
 	&sysfs_unregister,
 #if 0
 	&sysfs_data_csum,
@@ -609,6 +610,7 @@ static struct attribute *bch_flash_dev_files[] = {
 	&sysfs_size,
 	NULL
 };
+ATTRIBUTE_GROUPS(bch_flash_dev);
 KTYPE(bch_flash_dev);
 
 struct bset_stats_op {
@@ -955,7 +957,7 @@ static void bch_cache_set_internal_release(struct kobject *k)
 {
 }
 
-static struct attribute *bch_cache_set_files[] = {
+static struct attribute *bch_cache_set_attrs[] = {
 	&sysfs_unregister,
 	&sysfs_stop,
 	&sysfs_synchronous,
@@ -980,9 +982,10 @@ static struct attribute *bch_cache_set_files[] = {
 	&sysfs_clear_stats,
 	NULL
 };
+ATTRIBUTE_GROUPS(bch_cache_set);
 KTYPE(bch_cache_set);
 
-static struct attribute *bch_cache_set_internal_files[] = {
+static struct attribute *bch_cache_set_internal_attrs[] = {
 	&sysfs_active_journal_entries,
 
 	sysfs_time_stats_attribute_list(btree_gc, sec, ms)
@@ -1022,6 +1025,7 @@ static struct attribute *bch_cache_set_internal_files[] = {
 	&sysfs_feature_incompat,
 	NULL
 };
+ATTRIBUTE_GROUPS(bch_cache_set_internal);
 KTYPE(bch_cache_set_internal);
 
 static int __bch_cache_cmp(const void *l, const void *r)
@@ -1182,7 +1186,7 @@ STORE(__bch_cache)
 }
 STORE_LOCKED(bch_cache)
 
-static struct attribute *bch_cache_files[] = {
+static struct attribute *bch_cache_attrs[] = {
 	&sysfs_bucket_size,
 	&sysfs_block_size,
 	&sysfs_nbuckets,
@@ -1196,4 +1200,5 @@ static struct attribute *bch_cache_files[] = {
 	&sysfs_cache_replacement_policy,
 	NULL
 };
+ATTRIBUTE_GROUPS(bch_cache);
 KTYPE(bch_cache);
drivers/md/bcache/sysfs.h +1 -1
index c1752ba2e05b..a2ff6447b699 100644
@@ -9,7 +9,7 @@ struct kobj_type type ## _ktype = {					\
 		.show	= type ## _show,				\
 		.store	= type ## _store				\
 	}),								\
-	.default_attrs	= type ## _files				\
+	.default_groups	= type ## _groups				\
 }
 
 #define SHOW(fn)							\
Signature · 1 line
2.34.1
Acked-by on v1 1/1
#1 lore raw
Quoted 11 lines · Greg Kroah-Hartman

There are currently 2 ways to create a set of sysfs files for a kobj_type, through the default_attrs field, and the default_groups field. Move the bcache sysfs code to use default_groups field which has been the preferred way since aa30f47cf666 ("kobject: Add support for default attribute groups to kobj_type") so that we can soon get rid of the obsolete default_attrs field.

It looks good to me.

I assume you may take this patch directly in your maintenance path, but if you want me to take this, just let me know. Thanks.

Coly Li

Quoted 122 lines
---
  drivers/md/bcache/stats.c |  3 ++-
  drivers/md/bcache/sysfs.c | 15 ++++++++++-----
  drivers/md/bcache/sysfs.h |  2 +-
  3 files changed, 13 insertions(+), 7 deletions(-)
drivers/md/bcache/stats.c +2 -1
index 4c7ee5fedb9d..68b02216033d 100644
@@ -78,7 +78,7 @@ static void bch_stats_release(struct kobject *k)
  {
  }
 
-static struct attribute *bch_stats_files[] = {
+static struct attribute *bch_stats_attrs[] = {
  	&sysfs_cache_hits,
  	&sysfs_cache_misses,
  	&sysfs_cache_bypass_hits,
@@ -88,6 +88,7 @@ static struct attribute *bch_stats_files[] = {
  	&sysfs_bypassed,
  	NULL
  };
+ATTRIBUTE_GROUPS(bch_stats);
  static KTYPE(bch_stats);
 
  int bch_cache_accounting_add_kobjs(struct cache_accounting *acc,
drivers/md/bcache/sysfs.c +10 -5
index 1f0dce30fa75..d1029d71ff3b 100644
@@ -500,7 +500,7 @@ STORE(bch_cached_dev)
  	return size;
  }
 
-static struct attribute *bch_cached_dev_files[] = {
+static struct attribute *bch_cached_dev_attrs[] = {
  	&sysfs_attach,
  	&sysfs_detach,
  	&sysfs_stop,
@@ -543,6 +543,7 @@ static struct attribute *bch_cached_dev_files[] = {
  	&sysfs_backing_dev_uuid,
  	NULL
  };
+ATTRIBUTE_GROUPS(bch_cached_dev);
  KTYPE(bch_cached_dev);
 
  SHOW(bch_flash_dev)
@@ -600,7 +601,7 @@ STORE(__bch_flash_dev)
  }
  STORE_LOCKED(bch_flash_dev)
 
-static struct attribute *bch_flash_dev_files[] = {
+static struct attribute *bch_flash_dev_attrs[] = {
  	&sysfs_unregister,
  #if 0
  	&sysfs_data_csum,
@@ -609,6 +610,7 @@ static struct attribute *bch_flash_dev_files[] = {
  	&sysfs_size,
  	NULL
  };
+ATTRIBUTE_GROUPS(bch_flash_dev);
  KTYPE(bch_flash_dev);
 
  struct bset_stats_op {
@@ -955,7 +957,7 @@ static void bch_cache_set_internal_release(struct kobject *k)
  {
  }
 
-static struct attribute *bch_cache_set_files[] = {
+static struct attribute *bch_cache_set_attrs[] = {
  	&sysfs_unregister,
  	&sysfs_stop,
  	&sysfs_synchronous,
@@ -980,9 +982,10 @@ static struct attribute *bch_cache_set_files[] = {
  	&sysfs_clear_stats,
  	NULL
  };
+ATTRIBUTE_GROUPS(bch_cache_set);
  KTYPE(bch_cache_set);
 
-static struct attribute *bch_cache_set_internal_files[] = {
+static struct attribute *bch_cache_set_internal_attrs[] = {
  	&sysfs_active_journal_entries,
 
  	sysfs_time_stats_attribute_list(btree_gc, sec, ms)
@@ -1022,6 +1025,7 @@ static struct attribute *bch_cache_set_internal_files[] = {
  	&sysfs_feature_incompat,
  	NULL
  };
+ATTRIBUTE_GROUPS(bch_cache_set_internal);
  KTYPE(bch_cache_set_internal);
 
  static int __bch_cache_cmp(const void *l, const void *r)
@@ -1182,7 +1186,7 @@ STORE(__bch_cache)
  }
  STORE_LOCKED(bch_cache)
 
-static struct attribute *bch_cache_files[] = {
+static struct attribute *bch_cache_attrs[] = {
  	&sysfs_bucket_size,
  	&sysfs_block_size,
  	&sysfs_nbuckets,
@@ -1196,4 +1200,5 @@ static struct attribute *bch_cache_files[] = {
  	&sysfs_cache_replacement_policy,
  	NULL
  };
+ATTRIBUTE_GROUPS(bch_cache);
  KTYPE(bch_cache);
drivers/md/bcache/sysfs.h +1 -1
index c1752ba2e05b..a2ff6447b699 100644
@@ -9,7 +9,7 @@ struct kobj_type type ## _ktype = {					\
  		.show	= type ## _show,				\
  		.store	= type ## _store				\
  	}),								\
-	.default_attrs	= type ## _files				\
+	.default_groups	= type ## _groups				\
  }
 
  #define SHOW(fn)							\
#2 lore raw
Quoted 13 lines · Coly Li
Quoted 11 lines · Greg Kroah-Hartman

There are currently 2 ways to create a set of sysfs files for a kobj_type, through the default_attrs field, and the default_groups field. Move the bcache sysfs code to use default_groups field which has been the preferred way since aa30f47cf666 ("kobject: Add support for default attribute groups to kobj_type") so that we can soon get rid of the obsolete default_attrs field.

Quoted 6 lines

It looks good to me.

I assume you may take this patch directly in your maintenance path, but if you want me to take this, just let me know. Thanks.

I can take it myself, or you can, which ever is easiest for you, just let me know which you prefer. Thanks for the review!

greg k-h

#3 lore raw
Quoted 13 lines · Greg Kroah-Hartman
Quoted 12 lines · Coly Li
Quoted 11 lines · Greg Kroah-Hartman

There are currently 2 ways to create a set of sysfs files for a kobj_type, through the default_attrs field, and the default_groups field. Move the bcache sysfs code to use default_groups field which has been the preferred way since aa30f47cf666 ("kobject: Add support for default attribute groups to kobj_type") so that we can soon get rid of the obsolete default_attrs field.

Quoted 8 lines
Quoted 6 lines

It looks good to me.

I assume you may take this patch directly in your maintenance path, but if you want me to take this, just let me know. Thanks.

I can take it myself, or you can, which ever is easiest for you, just let me know which you prefer. Thanks for the review!

It will be faster for this patch goes into mainline in your path, I am on vacation now and will have a latency...

Thank you.

Coly Li