From: NeilBrown Date: Wed, 15 Jun 2011 02:21:26 +0000 (+1000) Subject: Incr: fix breakage in count_active. X-Git-Tag: mdadm-3.2.2~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=47c7a4be1436a8cae2fefc05bb227712d8b6f4ec;p=thirdparty%2Fmdadm.git Incr: fix breakage in count_active. If the second device is much newer than the first, but has a lower raid_disk number, we clear 'avail' badly and don't set up 'best' properly. Fix these things. Signed-off-by: NeilBrown --- diff --git a/Incremental.c b/Incremental.c index f576cbae..aa98d06b 100644 --- a/Incremental.c +++ b/Incremental.c @@ -776,9 +776,10 @@ static int count_active(struct supertype *st, struct mdinfo *sra, best[info.disk.raid_disk] = devnum; st->ss->getinfo_super(st, bestinfo, NULL); } else { /* info.events much bigger */ - memset(avail, 0, info.disk.raid_disk); + memset(avail, 0, raid_disks); max_events = info.events; avail[info.disk.raid_disk] = 2; + best[info.disk.raid_disk] = devnum; st->ss->getinfo_super(st, bestinfo, NULL); } }