btrfs: fix raid56 scrub failed in xfstests btrfs/072
authorGui Hecheng <guihc.fnst@cn.fujitsu.com>
Fri, 9 Jan 2015 01:39:40 +0000 (09:39 +0800)
committerChris Mason <clm@fb.com>
Tue, 27 Jan 2015 23:26:16 +0000 (15:26 -0800)
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>
fs/btrfs/scrub.c

index 2f0fbc374e876f90ee1e07ecfe5704bd4021c570..e427cb7ee12c7d848cd16402d78854e22db969dd 100644 (file)
@@ -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