md: add the bitmap group to the default groups for the md kobject
authorChristoph Hellwig <hch@lst.de>
Wed, 1 Sep 2021 11:38:31 +0000 (13:38 +0200)
committerJens Axboe <axboe@kernel.dk>
Mon, 18 Oct 2021 20:50:19 +0000 (14:50 -0600)
Replace the deprecated default_attrs with the default_groups mechanism,
and add the always visible bitmap group to the groups created add
kobject_add time.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/md/md.c

index eff3d23..e04a23d 100644 (file)
@@ -5490,6 +5490,10 @@ static struct attribute *md_default_attrs[] = {
        NULL,
 };
 
+static const struct attribute_group md_default_group = {
+       .attrs = md_default_attrs,
+};
+
 static struct attribute *md_redundancy_attrs[] = {
        &md_scan_mode.attr,
        &md_last_scan_mode.attr,
@@ -5512,6 +5516,12 @@ static const struct attribute_group md_redundancy_group = {
        .attrs = md_redundancy_attrs,
 };
 
+static const struct attribute_group *md_attr_groups[] = {
+       &md_default_group,
+       &md_bitmap_group,
+       NULL,
+};
+
 static ssize_t
 md_attr_show(struct kobject *kobj, struct attribute *attr, char *page)
 {
@@ -5587,7 +5597,7 @@ static const struct sysfs_ops md_sysfs_ops = {
 static struct kobj_type md_ktype = {
        .release        = md_free,
        .sysfs_ops      = &md_sysfs_ops,
-       .default_attrs  = md_default_attrs,
+       .default_groups = md_attr_groups,
 };
 
 int mdp_major = 0;
@@ -5596,7 +5606,6 @@ static void mddev_delayed_delete(struct work_struct *ws)
 {
        struct mddev *mddev = container_of(ws, struct mddev, del_work);
 
-       sysfs_remove_group(&mddev->kobj, &md_bitmap_group);
        kobject_del(&mddev->kobj);
        kobject_put(&mddev->kobj);
 }
@@ -5715,9 +5724,6 @@ static int md_alloc(dev_t dev, char *name)
                         disk->disk_name);
                error = 0;
        }
-       if (mddev->kobj.sd &&
-           sysfs_create_group(&mddev->kobj, &md_bitmap_group))
-               pr_debug("pointless warning\n");
  abort:
        mutex_unlock(&disks_mutex);
        if (!error && mddev->kobj.sd) {