goto fail_block_groups;
        }
 
-       ret = btrfs_sysfs_add_devices_kobj(fs_devices);
-       if (ret) {
-               btrfs_err(fs_info, "failed to init sysfs device interface: %d",
-                               ret);
-               goto fail_fsdev_sysfs;
-       }
-
        ret = btrfs_sysfs_add_mounted(fs_info);
        if (ret) {
                btrfs_err(fs_info, "failed to init sysfs interface: %d", ret);
 
        return 0;
 }
 
-int btrfs_sysfs_add_devices_kobj(struct btrfs_fs_devices *fs_devs)
-{
-       if (!fs_devs->devices_kobj)
-               fs_devs->devices_kobj = kobject_create_and_add("devices",
-                                                       &fs_devs->fsid_kobj);
-
-       if (!fs_devs->devices_kobj)
-               return -ENOMEM;
-
-       return 0;
-}
-
 int btrfs_sysfs_add_device_link(struct btrfs_fs_devices *fs_devices,
                                struct btrfs_device *one_device)
 {
                return error;
        }
 
+       fs_devs->devices_kobj = kobject_create_and_add("devices",
+                                                      &fs_devs->fsid_kobj);
+       if (!fs_devs->devices_kobj) {
+               btrfs_err(fs_devs->fs_info,
+                         "failed to init sysfs device interface");
+               kobject_put(&fs_devs->fsid_kobj);
+               return -ENOMEM;
+       }
+
        return 0;
 }
 
 
 int btrfs_sysfs_rm_device_link(struct btrfs_fs_devices *fs_devices,
                 struct btrfs_device *one_device);
 int btrfs_sysfs_add_fsid(struct btrfs_fs_devices *fs_devs);
-int btrfs_sysfs_add_devices_kobj(struct btrfs_fs_devices *fs_devs);
 void btrfs_sysfs_remove_fsid(struct btrfs_fs_devices *fs_devs);
 void btrfs_sysfs_update_sprout_fsid(struct btrfs_fs_devices *fs_devices,
                                    const u8 *fsid);