diff options
author | Chris Mason <clm@fb.com> | 2015-06-23 08:34:39 -0400 |
---|---|---|
committer | Chris Mason <clm@fb.com> | 2015-06-23 08:34:39 -0400 |
commit | c40b7b064f6159df3a080595a498613d08206e59 (patch) | |
tree | 8fc10b98beaafe276a70714eb1a2f6329a8bd209 /fs/btrfs/disk-io.c | |
parent | 37b8d27de5d0079e1ecef2711061048e13054ebe (diff) | |
parent | f90fc5472882ee7e76e0f345b9642b92c8677582 (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.c | 19 |
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: | |||
3058 | fail_sysfs: | 3069 | fail_sysfs: |
3059 | btrfs_sysfs_remove_one(fs_info); | 3070 | btrfs_sysfs_remove_one(fs_info); |
3060 | 3071 | ||
3072 | fail_fsdev_sysfs: | ||
3073 | btrfs_sysfs_remove_fsid(fs_info->fs_devices); | ||
3074 | |||
3061 | fail_block_groups: | 3075 | fail_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 | ||