mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-06 08:46:46 +00:00
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: Anand Jain <anand.jain@oracle.com> Signed-off-by: David Sterba <dsterba@suse.cz>
This commit is contained in:
parent
720592157e
commit
0dd2906f72
1 changed files with 8 additions and 4 deletions
|
@ -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)
|
||||||
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)
|
||||||
}
|
}
|
||||||
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)
|
||||||
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;
|
||||||
|
|
Loading…
Reference in a new issue