From: Qu Wenruo <quwenruo@cn.fujitsu.com>
To: <linux-btrfs@vger.kernel.org>
Cc: <bo.li.liu@oracle.com>
Subject: [PATCH v2 0/5] raid56: scrub related fixes
Date: Fri, 24 Mar 2017 10:00:22 +0800 [thread overview]
Message-ID: <20170324020027.21228-1-quwenruo@cn.fujitsu.com> (raw)
This patchset can be fetched from my github repo:
https://github.com/adam900710/linux.git raid56_fixes
It's based on v4.11-rc2, the last two patches get modified according to
the advice from Liu Bo.
The patchset fixes the following bugs:
1) False alert or wrong csum error number when scrubbing RAID5/6
The bug itself won't cause any damage to fs, just pure race.
2) Corrupted data stripe rebuild corrupts P/Q
So scrub makes one error into another, not really fixing anything
3) Use-after-free caused by cancelling dev-replace
This is quite a deadly bug, since cancelling dev-replace can
cause kernel panic.
Can be triggered by btrfs/069.
v2:
Use bio_counter to protect rbio against dev-replace cancel, instead of
original btrfs_device refcount, which is too restrict and must disable
rbio cache, suggested by Liu Bo.
Qu Wenruo (5):
btrfs: scrub: Introduce full stripe lock for RAID56
btrfs: scrub: Fix RAID56 recovery race condition
btrfs: scrub: Don't append on-disk pages for raid56 scrub
btrfs: dev-replace: Wait flighting bio before removing target device
btrfs: raid56: Use bio_counter to protect scrub
fs/btrfs/ctree.h | 4 +
fs/btrfs/dev-replace.c | 2 +
fs/btrfs/extent-tree.c | 3 +
fs/btrfs/raid56.c | 2 +
fs/btrfs/scrub.c | 201 ++++++++++++++++++++++++++++++++++++++++++++++++-
5 files changed, 208 insertions(+), 4 deletions(-)
--
2.12.1
next reply other threads:[~2017-03-24 2:00 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-24 2:00 Qu Wenruo [this message]
2017-03-24 2:00 ` [PATCH v2 1/5] btrfs: scrub: Introduce full stripe lock for RAID56 Qu Wenruo
2017-03-27 16:38 ` David Sterba
2017-03-28 6:24 ` Qu Wenruo
2017-03-24 2:00 ` [PATCH v2 2/5] btrfs: scrub: Fix RAID56 recovery race condition Qu Wenruo
2017-03-27 16:47 ` David Sterba
2017-03-24 2:00 ` [PATCH v2 3/5] btrfs: scrub: Don't append on-disk pages for raid56 scrub Qu Wenruo
2017-03-24 22:06 ` Liu Bo
2017-03-24 2:00 ` [PATCH v2 4/5] btrfs: dev-replace: Wait flighting bio before removing target device Qu Wenruo
2017-03-24 2:00 ` [PATCH v2 5/5] btrfs: raid56: Use bio_counter to protect scrub Qu Wenruo
2017-03-24 23:21 ` Liu Bo
2017-03-27 1:37 ` Qu Wenruo
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=20170324020027.21228-1-quwenruo@cn.fujitsu.com \
--to=quwenruo@cn.fujitsu.com \
--cc=bo.li.liu@oracle.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.