Commit 0dd2906f authored by Anand Jain's avatar Anand Jain Committed by David Sterba

Btrfs: sysfs: let default_attrs be separate from the kset

As of now btrfs_attrs are provided using the default_attrs through
the kset. Separate them and create the default_attrs using the
sysfs_create_files instead. By doing this we will have the
flexibility that device discovery thread could create fsid
kobject.
Signed-off-by: default avatarAnand Jain <anand.jain@oracle.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.cz>
parent 72059215
...@@ -428,7 +428,7 @@ static ssize_t btrfs_clone_alignment_show(struct kobject *kobj, ...@@ -428,7 +428,7 @@ static ssize_t btrfs_clone_alignment_show(struct kobject *kobj,
BTRFS_ATTR(clone_alignment, btrfs_clone_alignment_show); BTRFS_ATTR(clone_alignment, btrfs_clone_alignment_show);
static struct attribute *btrfs_attrs[] = { static const struct attribute *btrfs_attrs[] = {
BTRFS_ATTR_PTR(label), BTRFS_ATTR_PTR(label),
BTRFS_ATTR_PTR(nodesize), BTRFS_ATTR_PTR(nodesize),
BTRFS_ATTR_PTR(sectorsize), BTRFS_ATTR_PTR(sectorsize),
...@@ -447,7 +447,6 @@ static void btrfs_release_super_kobj(struct kobject *kobj) ...@@ -447,7 +447,6 @@ static void btrfs_release_super_kobj(struct kobject *kobj)
static struct kobj_type btrfs_ktype = { static struct kobj_type btrfs_ktype = {
.sysfs_ops = &kobj_sysfs_ops, .sysfs_ops = &kobj_sysfs_ops,
.release = btrfs_release_super_kobj, .release = btrfs_release_super_kobj,
.default_attrs = btrfs_attrs,
}; };
static inline struct btrfs_fs_info *to_fs_info(struct kobject *kobj) static inline struct btrfs_fs_info *to_fs_info(struct kobject *kobj)
...@@ -531,6 +530,7 @@ void btrfs_sysfs_remove_one(struct btrfs_fs_info *fs_info) ...@@ -531,6 +530,7 @@ void btrfs_sysfs_remove_one(struct btrfs_fs_info *fs_info)
} }
addrm_unknown_feature_attrs(fs_info, false); addrm_unknown_feature_attrs(fs_info, false);
sysfs_remove_group(&fs_info->super_kobj, &btrfs_feature_attr_group); sysfs_remove_group(&fs_info->super_kobj, &btrfs_feature_attr_group);
sysfs_remove_files(&fs_info->super_kobj, btrfs_attrs);
btrfs_sysfs_remove_fsid(fs_info); btrfs_sysfs_remove_fsid(fs_info);
} }
...@@ -720,13 +720,17 @@ int btrfs_sysfs_add_one(struct btrfs_fs_info *fs_info) ...@@ -720,13 +720,17 @@ int btrfs_sysfs_add_one(struct btrfs_fs_info *fs_info)
return error; return error;
} }
error = sysfs_create_group(&fs_info->super_kobj, error = sysfs_create_files(&fs_info->super_kobj, btrfs_attrs);
&btrfs_feature_attr_group);
if (error) { if (error) {
btrfs_sysfs_remove_fsid(fs_info); btrfs_sysfs_remove_fsid(fs_info);
return error; return error;
} }
error = sysfs_create_group(&fs_info->super_kobj,
&btrfs_feature_attr_group);
if (error)
goto failure;
error = addrm_unknown_feature_attrs(fs_info, true); error = addrm_unknown_feature_attrs(fs_info, true);
if (error) if (error)
goto failure; goto failure;
......
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