From: Chris Mason <clm@fb.com>
To: <dsterba@suse.cz>, <linux-btrfs@vger.kernel.org>,
<holger.hoffstaette@googlemail.com>
Subject: Re: [PATCH] Btrfs: fix regression in raid level conversion
Date: Wed, 20 May 2015 14:08:33 -0400 [thread overview]
Message-ID: <555CCDA1.2040302@fb.com> (raw)
In-Reply-To: <20150520170227.GM23255@twin.jikos.cz>
On 05/20/2015 01:02 PM, David Sterba wrote:
> On Wed, May 20, 2015 at 10:13:11AM -0400, Chris Mason wrote:
>> 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>
>> ---
>> fs/btrfs/extent-tree.c | 20 ++++++++++++++++++++
>> 1 file changed, 20 insertions(+)
>>
>> diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
>> index 45e3f08..a115599 100644
>> --- a/fs/btrfs/extent-tree.c
>> +++ b/fs/btrfs/extent-tree.c
>> @@ -8829,6 +8829,26 @@ again:
>> goto again;
>> }
>>
>> + /*
>> + * if we are changing raid levels, try to allocate a corresponding
>> + * block group with the new raid level.
>> + */
>> + if (!(cache->flags & BTRFS_BLOCK_GROUP_SYSTEM)) {
>
> This prevents to switch the system chunk in all cases. What was the
> reason to do it?
I thought the system chunk was being caught by check_system_chunk below,
but no, its using the wrong profile. It did work when I tested, but I
ran it a few times in a row and got inconsistent results.
>
> If I remove the check, then the conversions work in all combinations.
> Eg.
Thanks, I'm pushing out an updated patch without the check.
-chris
prev parent reply other threads:[~2015-05-20 18:08 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-20 14:13 [PATCH] Btrfs: fix regression in raid level conversion Chris Mason
2015-05-20 17:02 ` David Sterba
2015-05-20 18:08 ` Chris Mason [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=555CCDA1.2040302@fb.com \
--to=clm@fb.com \
--cc=dsterba@suse.cz \
--cc=holger.hoffstaette@googlemail.com \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.