]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Fix raid6 error recovery in 'restripe' code.
authorNeilBrown <neilb@suse.de>
Fri, 25 Sep 2009 07:23:33 +0000 (17:23 +1000)
committerNeilBrown <neilb@suse.de>
Fri, 25 Sep 2009 07:23:33 +0000 (17:23 +1000)
Thanks to Matthias Urlichs for discovering and reporting this.

Signed-off-by: NeilBrown <neilb@suse.de>
restripe.c

index 9a70cd092084e5d039fc979c823628a6cf077df7..33548e91ac9ed48a7cfdb295c3d6f2db6d50ba6f 100644 (file)
@@ -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;