summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Kill.c7
-rw-r--r--mdadm.c2
2 files changed, 6 insertions, 3 deletions
diff --git a/Kill.c b/Kill.c
index 63442a6..e738978 100644
--- a/Kill.c
+++ b/Kill.c
@@ -34,6 +34,10 @@ int Kill(char *dev, struct supertype *st, int force, int quiet, int noexcl)
/*
* Nothing fancy about Kill. It just zeroes out a superblock
* Definitely not safe.
+ * Returns:
+ * 0 - a zero superblock was successfully written out
+ * 1 - failed to write the zero superblock
+ * 2 - failed to open the device or find a superblock.
*/
int fd, rv = 0;
@@ -45,8 +49,7 @@ int Kill(char *dev, struct supertype *st, int force, int quiet, int noexcl)
if (!quiet)
fprintf(stderr, Name ": Couldn't open %s for write - not zeroing\n",
dev);
- close(fd);
- return 1;
+ return 2;
}
if (st == NULL)
st = guess_super(fd);
diff --git a/mdadm.c b/mdadm.c
index d235b2a..be4fbf6 100644
--- a/mdadm.c
+++ b/mdadm.c
@@ -1367,7 +1367,7 @@ int main(int argc, char *argv[])
do {
rv |= Kill(dv->devname, NULL, force, q, 0);
q = 1;
- } while ((rv & 2) == 0);
+ } while (rv == 0);
rv &= ~2;
}
continue;