mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
Btrfs: sysfs: fix, kobject pointer clean up needed after kobject release
The sysfs clean up self test like in the below code fails, since fs_info->device_dir_kobject still points to its stale kobject. Reseting this pointer will help to fix this. open_ctree() { ret = btrfs_sysfs_add_one(fs_info); :: + btrfs_sysfs_remove_one(fs_info); + ret = btrfs_sysfs_add_one(fs_info); + if (ret) { + pr_err("BTRFS: failed to init sysfs interface: %d\n", ret); + goto fail_block_groups; + } Signed-off-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: David Sterba <dsterba@suse.cz>
This commit is contained in:
parent
e7e1aa9c91
commit
8345ea31dc
1 changed files with 1 additions and 0 deletions
|
@ -525,6 +525,7 @@ void btrfs_sysfs_remove_one(struct btrfs_fs_info *fs_info)
|
||||||
btrfs_kobj_rm_device(fs_info, NULL);
|
btrfs_kobj_rm_device(fs_info, NULL);
|
||||||
kobject_del(fs_info->device_dir_kobj);
|
kobject_del(fs_info->device_dir_kobj);
|
||||||
kobject_put(fs_info->device_dir_kobj);
|
kobject_put(fs_info->device_dir_kobj);
|
||||||
|
fs_info->device_dir_kobj = NULL;
|
||||||
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);
|
||||||
__btrfs_sysfs_remove_one(fs_info);
|
__btrfs_sysfs_remove_one(fs_info);
|
||||||
|
|
Loading…
Reference in a new issue