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

Martin F. Krafft madduck at alioth.debian.org
Wed Jan 27 02:03:47 UTC 2010


Module: mdadm
Branch: upstream
Commit: 5c64fcb5358953883ae6b72e584bf7dbbae2b71f
URL:    http://git.debian.org/?p=pkg-mdadm/mdadm.git;a=commit;h=5c64fcb5358953883ae6b72e584bf7dbbae2b71f

Author: NeilBrown <neilb at suse.de>
Date:   Tue Dec  8 17:26:31 2009 +1100

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 at suse.de>

---

 Manage.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/Manage.c b/Manage.c
index fb9b972..1ca371d 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;




More information about the pkg-mdadm-commits mailing list