From: Christoph Hellwig hch@lst.de
mainline inclusion from mainline-v5.16-rc1 commit 51238e7fbd6182e36dbc093c92ae93142c57c0f5 category: bugfix bugzilla: 188733, https://gitee.com/openeuler/kernel/issues/I81XCK
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?i...
-------------------------------------------------
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
Conflict: drivers/md/md.c the merging order of commit 94f3cd7d832c ("md: extend disks_mutex coverage") is inconsistent.
Signed-off-by: Li Nan linan122@huawei.com --- drivers/md/md.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/drivers/md/md.c b/drivers/md/md.c index 188367b56b02..7e2ce1edfafb 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -5600,6 +5600,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, @@ -5622,6 +5626,12 @@ static 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) { @@ -5696,7 +5706,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; @@ -5705,7 +5715,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); } @@ -5824,9 +5833,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: if (!error && mddev->kobj.sd) { kobject_uevent(&mddev->kobj, KOBJ_ADD);