From e38cc2d87b319572fe7ff08be5657f563b1ef9e7 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Fri, 25 Sep 2009 17:23:33 +1000 Subject: [PATCH] Fix raid6 error recovery in 'restripe' code. Thanks to Matthias Urlichs for discovering and reporting this. Signed-off-by: NeilBrown --- restripe.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/restripe.c b/restripe.c index 9a70cd0..33548e9 100644 --- a/restripe.c +++ b/restripe.c @@ -477,8 +477,8 @@ int save_stripes(int *source, unsigned long long *offsets, for (i = 0; i < data_disks; i++) bufs[i] = (uint8_t*)buf + chunk_size * ((qdisk+1+i) % raid_disks); - fdisk[0] = (qdisk + 1 + fdisk[0]) * raid_disks; - fdisk[1] = (qdisk + 1 + fdisk[1]) * raid_disks; + fdisk[0] = (qdisk + 1 + fdisk[0]) % raid_disks; + fdisk[1] = (qdisk + 1 + fdisk[1]) % raid_disks; syndrome_disks = data_disks; } bufs[syndrome_disks] = (uint8_t*)buf + chunk_size * disk;