OSDN Git Service

btrfs: scrub: use scrub_simple_mirror() to handle RAID56 data stripe scrub
authorQu Wenruo <wqu@suse.com>
Fri, 11 Mar 2022 07:38:46 +0000 (15:38 +0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 16 May 2022 15:17:30 +0000 (17:17 +0200)
commit18d30ab961497f2934dad5cb502e3e377e6ae61c
treedb3e9ac6f61a763838cf59176390ffcdbb36e280
parente430c4287ebdafef961948c31c0b8c18dae7ee5e
btrfs: scrub: use scrub_simple_mirror() to handle RAID56 data stripe scrub

Although RAID56 has complex repair mechanism, which involves reading the
whole full stripe, but inside one data stripe, it's in fact no different
than SINGLE/RAID1.

The point here is, for data stripe we just check the csum for each
extent we hit.  Only for csum mismatch case, our repair paths divide.

So we can still reuse scrub_simple_mirror() for RAID56 data stripes,
which saves quite some code.

Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/scrub.c