aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/disk-io.c
diff options
context:
space:
mode:
authorChris Mason <clm@fb.com>2015-06-23 08:34:39 -0400
committerChris Mason <clm@fb.com>2015-06-23 08:34:39 -0400
commitc40b7b064f6159df3a080595a498613d08206e59 (patch)
tree8fc10b98beaafe276a70714eb1a2f6329a8bd209 /fs/btrfs/disk-io.c
parent37b8d27de5d0079e1ecef2711061048e13054ebe (diff)
parentf90fc5472882ee7e76e0f345b9642b92c8677582 (diff)
Merge branch 'sysfs-fsdevices-4.2-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into anand
Diffstat (limited to 'fs/btrfs/disk-io.c')
-rw-r--r--fs/btrfs/disk-io.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index b7fa3bac2cff..b977fc8d8201 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -2497,7 +2497,6 @@ int open_ctree(struct super_block *sb,
2497 seqlock_init(&fs_info->profiles_lock); 2497 seqlock_init(&fs_info->profiles_lock);
2498 init_rwsem(&fs_info->delayed_iput_sem); 2498 init_rwsem(&fs_info->delayed_iput_sem);
2499 2499
2500 init_completion(&fs_info->kobj_unregister);
2501 INIT_LIST_HEAD(&fs_info->dirty_cowonly_roots); 2500 INIT_LIST_HEAD(&fs_info->dirty_cowonly_roots);
2502 INIT_LIST_HEAD(&fs_info->space_info); 2501 INIT_LIST_HEAD(&fs_info->space_info);
2503 INIT_LIST_HEAD(&fs_info->tree_mod_seq_list); 2502 INIT_LIST_HEAD(&fs_info->tree_mod_seq_list);
@@ -2877,10 +2876,22 @@ retry_root_backup:
2877 2876
2878 btrfs_close_extra_devices(fs_devices, 1); 2877 btrfs_close_extra_devices(fs_devices, 1);
2879 2878
2879 ret = btrfs_sysfs_add_fsid(fs_devices, NULL);
2880 if (ret) {
2881 pr_err("BTRFS: failed to init sysfs fsid interface: %d\n", ret);
2882 goto fail_block_groups;
2883 }
2884
2885 ret = btrfs_sysfs_add_device(fs_devices);
2886 if (ret) {
2887 pr_err("BTRFS: failed to init sysfs device interface: %d\n", ret);
2888 goto fail_fsdev_sysfs;
2889 }
2890
2880 ret = btrfs_sysfs_add_one(fs_info); 2891 ret = btrfs_sysfs_add_one(fs_info);
2881 if (ret) { 2892 if (ret) {
2882 pr_err("BTRFS: failed to init sysfs interface: %d\n", ret); 2893 pr_err("BTRFS: failed to init sysfs interface: %d\n", ret);
2883 goto fail_block_groups; 2894 goto fail_fsdev_sysfs;
2884 } 2895 }
2885 2896
2886 ret = btrfs_init_space_info(fs_info); 2897 ret = btrfs_init_space_info(fs_info);
@@ -3058,6 +3069,9 @@ fail_cleaner:
3058fail_sysfs: 3069fail_sysfs:
3059 btrfs_sysfs_remove_one(fs_info); 3070 btrfs_sysfs_remove_one(fs_info);
3060 3071
3072fail_fsdev_sysfs:
3073 btrfs_sysfs_remove_fsid(fs_info->fs_devices);
3074
3061fail_block_groups: 3075fail_block_groups:
3062 btrfs_put_block_group_cache(fs_info); 3076 btrfs_put_block_group_cache(fs_info);
3063 btrfs_free_block_groups(fs_info); 3077 btrfs_free_block_groups(fs_info);
@@ -3735,6 +3749,7 @@ void close_ctree(struct btrfs_root *root)
3735 } 3749 }
3736 3750
3737 btrfs_sysfs_remove_one(fs_info); 3751 btrfs_sysfs_remove_one(fs_info);
3752 btrfs_sysfs_remove_fsid(fs_info->fs_devices);
3738 3753
3739 btrfs_free_fs_roots(fs_info); 3754 btrfs_free_fs_roots(fs_info);
3740 3755