From: <gregkh@linuxfoundation.org>
To: clm@fb.com, dsterba@suse.cz, gregkh@linuxfoundation.org,
holger.hoffstaette@googlemail.com
Cc: <stable@vger.kernel.org>, <stable-commits@vger.kernel.org>
Subject: Patch "Btrfs: fix regression in raid level conversion" has been added to the 4.0-stable tree
Date: Fri, 19 Jun 2015 13:32:28 -0700 [thread overview]
Message-ID: <143474594861151@kroah.com> (raw)
This is a note to let you know that I've just added the patch titled
Btrfs: fix regression in raid level conversion
to the 4.0-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
btrfs-fix-regression-in-raid-level-conversion.patch
and it can be found in the queue-4.0 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.
>From 153c35b6cccc0c72de9fae06c8e2c8b2c47d79d4 Mon Sep 17 00:00:00 2001
From: Chris Mason <clm@fb.com>
Date: Tue, 19 May 2015 18:54:41 -0700
Subject: Btrfs: fix regression in raid level conversion
From: Chris Mason <clm@fb.com>
commit 153c35b6cccc0c72de9fae06c8e2c8b2c47d79d4 upstream.
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/btrfs/extent-tree.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -8484,6 +8484,24 @@ static int set_block_group_ro(struct btr
u64 min_allocable_bytes;
int ret = -ENOSPC;
+ /*
+ * if we are changing raid levels, try to allocate a corresponding
+ * block group with the new raid level.
+ */
+ alloc_flags = update_block_group_flags(root, cache->flags);
+ if (alloc_flags != cache->flags) {
+ ret = do_chunk_alloc(trans, root, alloc_flags,
+ CHUNK_ALLOC_FORCE);
+ /*
+ * ENOSPC is allowed here, we may have enough space
+ * already allocated at the new raid level to
+ * carry on
+ */
+ if (ret == -ENOSPC)
+ ret = 0;
+ if (ret < 0)
+ goto out;
+ }
/*
* We need some metadata space and system metadata space for
Patches currently in stable-queue which might be from clm@fb.com are
queue-4.0/btrfs-fix-regression-in-raid-level-conversion.patch
queue-4.0/btrfs-send-add-missing-check-for-dead-clone-root.patch
queue-4.0/btrfs-incorrect-handling-for-fiemap_fill_next_extent-return.patch
queue-4.0/btrfs-send-don-t-leave-without-decrementing-clone-root-s-send_progress.patch
queue-4.0/btrfs-fix-range-cloning-when-same-inode-used-as-source-and-destination.patch
queue-4.0/btrfs-fix-uninit-variable-in-clone-ioctl.patch
queue-4.0/btrfs-cleanup-orphans-while-looking-up-default-subvolume.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
reply other threads:[~2015-06-19 20:32 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=143474594861151@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=clm@fb.com \
--cc=dsterba@suse.cz \
--cc=holger.hoffstaette@googlemail.com \
--cc=stable-commits@vger.kernel.org \
--cc=stable@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.