Commit 51238e7f authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe

md: add the bitmap group to the default groups for the md kobject

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: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarSong Liu <songliubraving@fb.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 9be68dd7
...@@ -5490,6 +5490,10 @@ static struct attribute *md_default_attrs[] = { ...@@ -5490,6 +5490,10 @@ static struct attribute *md_default_attrs[] = {
NULL, NULL,
}; };
static const struct attribute_group md_default_group = {
.attrs = md_default_attrs,
};
static struct attribute *md_redundancy_attrs[] = { static struct attribute *md_redundancy_attrs[] = {
&md_scan_mode.attr, &md_scan_mode.attr,
&md_last_scan_mode.attr, &md_last_scan_mode.attr,
...@@ -5512,6 +5516,12 @@ static const struct attribute_group md_redundancy_group = { ...@@ -5512,6 +5516,12 @@ static const struct attribute_group md_redundancy_group = {
.attrs = md_redundancy_attrs, .attrs = md_redundancy_attrs,
}; };
static const struct attribute_group *md_attr_groups[] = {
&md_default_group,
&md_bitmap_group,
NULL,
};
static ssize_t static ssize_t
md_attr_show(struct kobject *kobj, struct attribute *attr, char *page) md_attr_show(struct kobject *kobj, struct attribute *attr, char *page)
{ {
...@@ -5587,7 +5597,7 @@ static const struct sysfs_ops md_sysfs_ops = { ...@@ -5587,7 +5597,7 @@ static const struct sysfs_ops md_sysfs_ops = {
static struct kobj_type md_ktype = { static struct kobj_type md_ktype = {
.release = md_free, .release = md_free,
.sysfs_ops = &md_sysfs_ops, .sysfs_ops = &md_sysfs_ops,
.default_attrs = md_default_attrs, .default_groups = md_attr_groups,
}; };
int mdp_major = 0; int mdp_major = 0;
...@@ -5596,7 +5606,6 @@ static void mddev_delayed_delete(struct work_struct *ws) ...@@ -5596,7 +5606,6 @@ static void mddev_delayed_delete(struct work_struct *ws)
{ {
struct mddev *mddev = container_of(ws, struct mddev, del_work); struct mddev *mddev = container_of(ws, struct mddev, del_work);
sysfs_remove_group(&mddev->kobj, &md_bitmap_group);
kobject_del(&mddev->kobj); kobject_del(&mddev->kobj);
kobject_put(&mddev->kobj); kobject_put(&mddev->kobj);
} }
...@@ -5715,9 +5724,6 @@ static int md_alloc(dev_t dev, char *name) ...@@ -5715,9 +5724,6 @@ static int md_alloc(dev_t dev, char *name)
disk->disk_name); disk->disk_name);
error = 0; error = 0;
} }
if (mddev->kobj.sd &&
sysfs_create_group(&mddev->kobj, &md_bitmap_group))
pr_debug("pointless warning\n");
abort: abort:
mutex_unlock(&disks_mutex); mutex_unlock(&disks_mutex);
if (!error && mddev->kobj.sd) { if (!error && mddev->kobj.sd) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment