summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnand Jain <anand.jain@oracle.com>2017-09-28 09:51:09 +0300
committerDavid Sterba <dsterba@suse.com>2017-10-30 14:27:58 +0300
commit0af2c4bf5a012a40a2f9230458087d7f068339d0 (patch)
tree3e97807c2af11e495faa5ec329de37b3c3b0b595
parent4b865cab96fe2a30ed512cf667b354bd291b3b0a (diff)
downloadlinux-0af2c4bf5a012a40a2f9230458087d7f068339d0.tar.xz
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>
-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);