From 5c64fcb5358953883ae6b72e584bf7dbbae2b71f Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Tue, 8 Dec 2009 17:26:31 +1100 Subject: 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 --- Manage.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'Manage.c') diff --git a/Manage.c b/Manage.c index fb9b9723..1ca371db 100644 --- a/Manage.c +++ b/Manage.c @@ -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; -- cgit v1.2.3