summaryrefslogtreecommitdiff
path: root/Manage.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2012-08-15 09:51:20 +1000
committerNeilBrown <neilb@suse.de>2012-08-15 09:51:20 +1000
commit9cf9a1de36ca37dfc447caf35fbe87967709c40c (patch)
tree244aa2eb86a9aaf0e912c84e7a0726e7026940c3 /Manage.c
parent6d43efb59b16a53236a62f99beff415860aa66b2 (diff)
downloadmdadm-9cf9a1de36ca37dfc447caf35fbe87967709c40c.tar.gz
Manage: zero metadata before adding to 'external' array.
'external' arrays don't support --re-add yet so old metadata is no value, and 'ddf' gets confusing in mdmon if old metadata is found. So for now, zero out any old metadata found before adding a spare to an externally-managed array. Reported-by: Albert Pauw <albert.pauw@gmail.com> Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'Manage.c')
-rw-r--r--Manage.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/Manage.c b/Manage.c
index f83af65..7f27f74 100644
--- a/Manage.c
+++ b/Manage.c
@@ -786,6 +786,7 @@ int Manage_add(int fd, int tfd, struct mddev_dev *dv,
return -1;
}
+ Kill(dv->devname, NULL, 0, -1, 0);
dfd = dev_open(dv->devname, O_RDWR | O_EXCL|O_DIRECT);
if (mdmon_running(tst->container_dev))
tst->update_tail = &tst->updates;