Don't attempt a re-add if the device is marked as faulty.

If a device is marked as faulty, then a re-add will cause it to be
added as a faulty drive, which is not what it wanted.
So just refuse to try to re-add a device which is marked 'faulty'.

Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
NeilBrown 2009-12-08 17:26:31 +11:00
parent 034b203a47
commit 5c64fcb535
1 changed files with 4 additions and 1 deletions

View File

@ -565,7 +565,10 @@ int Manage_subdevs(char *devname, int fd,
disc.state |= 1 << MD_DISK_WRITEMOSTLY;
if (dv->writemostly == 2)
disc.state &= ~(1 << MD_DISK_WRITEMOSTLY);
if (ioctl(fd, ADD_NEW_DISK, &disc) == 0) {
/* don't even try if disk is marked as faulty */
errno = 0;
if ((disc.state & 1) == 0 &&
ioctl(fd, ADD_NEW_DISK, &disc) == 0) {
if (verbose >= 0)
fprintf(stderr, Name ": re-added %s\n", dv->devname);
continue;