]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commita5972e6ca66ba5ef9bb74424817ddafb98444a29
tree281b31ee220fc7bf3930f32b7863ddd16ad1e2af
parent36bbd27dc25ed6d0a9ee6e4b2222d63e8bbb695e
Btrfs: fix regression in raid level conversion

Commit 88f17451501ddccc8daa8a632a2352041671edd5 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 88f174515, 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