mirror of
https://github.com/kdave/btrfs-progs
synced 2024-12-18 04:15:32 +00:00
2755204480
There is a bug in raid56_recov() which doesn't properly repair data and P case corruption: /* Data and P*/ if (dest2 == nr_devs - 1) return raid6_recov_datap(nr_devs, stripe_len, dest1, data); Note that, dest1/2 is to indicate which slot has corruption. For RAID6 cases: [0, nr_devs - 2) is for data stripes, @data_devs - 2 is for P, @data_devs - 1 is for Q. For above code, the comment is correct, but the check condition is wrong, and leads to the only project, btrfs-fuse, to report raid6 recovery error for 2 devices missing case. Fix it by using correct condition. Signed-off-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com> |
||
---|---|---|
.. | ||
bitops.h | ||
interval_tree_generic.h | ||
list_sort.c | ||
list_sort.h | ||
list.h | ||
mktables.c | ||
overflow.h | ||
radix-tree.c | ||
radix-tree.h | ||
raid56.c | ||
raid56.h | ||
rbtree_augmented.h | ||
rbtree.c | ||
rbtree.h | ||
sizes.h | ||
tables.c |