aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs
diff options
context:
space:
mode:
authorAnand Jain <anand.jain@oracle.com>2017-09-28 14:51:09 +0800
committerDavid Sterba <dsterba@suse.com>2017-10-30 12:27:58 +0100
commit0af2c4bf5a012a40a2f9230458087d7f068339d0 (patch)
tree3e97807c2af11e495faa5ec329de37b3c3b0b595 /fs/btrfs
parentbtrfs: Add checker for EXTENT_CSUM (diff)
downloadlinux-dev-0af2c4bf5a012a40a2f9230458087d7f068339d0.tar.xz
linux-dev-0af2c4bf5a012a40a2f9230458087d7f068339d0.zip
btrfs: undo writable superblocke when sprouting fails
When new device is being added to seed FS, seed FS is marked writable, but when we fail to bring in the new device, we missed to undo the writable part. This patch fixes it. Signed-off-by: Anand Jain <anand.jain@oracle.com> Reviewed-by: Nikolay Borisov <nborisov@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r--fs/btrfs/volumes.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index ac1e8686ba78..0be58b5a320c 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -2496,6 +2496,8 @@ int btrfs_init_new_device(struct btrfs_fs_info *fs_info, const char *device_path
return ret;
error_trans:
+ if (seeding_dev)
+ sb->s_flags |= MS_RDONLY;
btrfs_end_transaction(trans);
rcu_string_free(device->name);
btrfs_sysfs_rm_device_link(fs_info->fs_devices, device);