From: Gui Hecheng <guihc.fnst@cn.fujitsu.com>
Date: Fri, 9 Jan 2015 01:39:40 +0000 (+0800)
Subject: btrfs: fix raid56 scrub failed in xfstests btrfs/072
X-Git-Tag: v3.19-rc7~9^2
X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=063c54dccdecb0479662778ddf54ee45aa55423d;p=users%2Fdwmw2%2Flinux.git

btrfs: fix raid56 scrub failed in xfstests btrfs/072

The xfstests btrfs/072 reports uncorrectable read errors in dmesg,
because scrub forgets to use commit_root for parity scrub routine
and scrub attempts to scrub those extents items whose contents are
not fully on disk.

To fix it, we just add the @search_commit_root flag back.

Signed-off-by: Gui Hecheng <guihc.fnst@cn.fujitsu.com>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Reviewed-by: Miao Xie <miaoxie@huawei.com>
Signed-off-by: Chris Mason <clm@fb.com>
---

diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c
index 2f0fbc374e876..e427cb7ee12c7 100644
--- a/fs/btrfs/scrub.c
+++ b/fs/btrfs/scrub.c
@@ -3065,6 +3065,8 @@ static noinline_for_stack int scrub_stripe(struct scrub_ctx *sctx,
 	path->search_commit_root = 1;
 	path->skip_locking = 1;
 
+	ppath->search_commit_root = 1;
+	ppath->skip_locking = 1;
 	/*
 	 * trigger the readahead for extent tree csum tree and wait for
 	 * completion. During readahead, the scrub is officially paused