Btrfs: sysfs: fix, btrfs_release_super_kobj() should to clean up the kobject data
authorAnand Jain <Anand.Jain@oracle.com>
Mon, 9 Mar 2015 22:38:19 +0000 (06:38 +0800)
committerDavid Sterba <dsterba@suse.cz>
Wed, 27 May 2015 10:27:18 +0000 (12:27 +0200)
commit248d200df34f3e44a4140f32dfc7428c52615332
tree1f84869e27d96d1ef0999e47d47b9d22f9e983c2
parentba155e2d21f6bf05de86a78dbe5bfd8757604a65
Btrfs: sysfs: fix, btrfs_release_super_kobj() should to clean up the kobject data

The following test case fails indicating that, thread tried to init an initialized object.

kernel: [232104.016513] kobject (ffff880006c1c980): tried to init an initialized object, something is seriously wrong.

btrfs_sysfs_remove_one() self test code:

open_tree()
{
 ::
        ret = btrfs_sysfs_add_one(fs_info);
if (ret) {
              pr_err("BTRFS: failed to init sysfs interface: %d\n", ret);
                goto fail_block_groups;
        }
+       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;
+       }

cleaning up the unregistered kobject fixes this.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
fs/btrfs/sysfs.c