Monitor: don't report the disappearance of a faulty device as SpareActive.

Normally Monitor doesn't see faulty devices in active slots - they get
moved away too quickly.
But if it does, it reports the "faulty device disappeared" event (when
it finally does get moved away) as SpareActive due to insufficient
checking.

So add a better check.

Reported-by:  Pierre Vignéras <pierre@vigneras.name>
This commit is contained in:
NeilBrown 2010-05-18 12:31:29 +10:00
parent c03ef02d92
commit 4460f8f7c3
1 changed files with 1 additions and 0 deletions

View File

@ -391,6 +391,7 @@ int Monitor(mddev_dev_t devlist,
)
alert("FailSpare", dev, dv, mailaddr, mailfrom, alert_cmd, dosyslog);
else if (i < (unsigned)array.raid_disks &&
! (newstate & (1<<MD_DISK_REMOVED)) &&
(((st->devstate[i]&change)&(1<<MD_DISK_FAULTY)) ||
((newstate&change)&(1<<MD_DISK_ACTIVE)) ||
((newstate&change)&(1<<MD_DISK_SYNC)))