{
 }
 
-static struct attribute *bch_stats_files[] = {
+static struct attribute *bch_stats_attrs[] = {
        &sysfs_cache_hits,
        &sysfs_cache_misses,
        &sysfs_cache_bypass_hits,
        &sysfs_bypassed,
        NULL
 };
+ATTRIBUTE_GROUPS(bch_stats);
 static KTYPE(bch_stats);
 
 int bch_cache_accounting_add_kobjs(struct cache_accounting *acc,
 
        return size;
 }
 
-static struct attribute *bch_cached_dev_files[] = {
+static struct attribute *bch_cached_dev_attrs[] = {
        &sysfs_attach,
        &sysfs_detach,
        &sysfs_stop,
        &sysfs_backing_dev_uuid,
        NULL
 };
+ATTRIBUTE_GROUPS(bch_cached_dev);
 KTYPE(bch_cached_dev);
 
 SHOW(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,
        &sysfs_size,
        NULL
 };
+ATTRIBUTE_GROUPS(bch_flash_dev);
 KTYPE(bch_flash_dev);
 
 struct bset_stats_op {
 {
 }
 
-static struct attribute *bch_cache_set_files[] = {
+static struct attribute *bch_cache_set_attrs[] = {
        &sysfs_unregister,
        &sysfs_stop,
        &sysfs_synchronous,
        &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)
        &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)
 }
 STORE_LOCKED(bch_cache)
 
-static struct attribute *bch_cache_files[] = {
+static struct attribute *bch_cache_attrs[] = {
        &sysfs_bucket_size,
        &sysfs_block_size,
        &sysfs_nbuckets,
        &sysfs_cache_replacement_policy,
        NULL
 };
+ATTRIBUTE_GROUPS(bch_cache);
 KTYPE(bch_cache);