Btrfs: fix regression in raid level conversion
authorChris Mason <clm@fb.com>
Wed, 20 May 2015 01:54:41 +0000 (18:54 -0700)
committerChris Mason <clm@fb.com>
Wed, 20 May 2015 18:03:38 +0000 (11:03 -0700)
commit153c35b6cccc0c72de9fae06c8e2c8b2c47d79d4
tree281b31ee220fc7bf3930f32b7863ddd16ad1e2af
parenta96295965b600f2dc6ad661c4803c86e87db3d7b
Btrfs: fix regression in raid level conversion

Commit 2f0810880f082fa8ba66ab2c33b02e4ff9770a5e changed
btrfs_set_block_group_ro to avoid trying to allocate new chunks with the
new raid profile during conversion.  This fixed failures when there was
no space on the drive to allocate a new chunk, but the metadata
reserves were sufficient to continue the conversion.

But this ended up causing a regression when the drive had plenty of
space to allocate new chunks, mostly because reduce_alloc_profile isn't
using the new raid profile.

Fixing btrfs_reduce_alloc_profile is a bigger patch.  For now, do a
partial revert of 2f0810880, and don't error out if we hit ENOSPC.

Signed-off-by: Chris Mason <clm@fb.com>
Tested-by: Dave Sterba <dsterba@suse.cz>
Reported-by: Holger Hoffstaette <holger.hoffstaette@googlemail.com>
fs/btrfs/extent-tree.c