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