From: NeilBrown Date: Fri, 25 Sep 2009 07:23:33 +0000 (+1000) Subject: Fix raid6 error recovery in 'restripe' code. X-Git-Tag: mdadm-3.1~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e38cc2d87b319572fe7ff08be5657f563b1ef9e7;p=thirdparty%2Fmdadm.git Fix raid6 error recovery in 'restripe' code. Thanks to Matthias Urlichs for discovering and reporting this. Signed-off-by: NeilBrown --- diff --git a/restripe.c b/restripe.c index 9a70cd09..33548e91 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;