X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=Kill.c;h=ff52561d0cbb988c7e3977b2f939ba2e7670c6f2;hb=018a488238e2ff55d7c2fd29333c1f7305354318;hp=b841a5b73ca48b5f27881c63458017a37c511d66;hpb=4a96d9ff4f03f70d35026e5cf0d1189292d62cfd;p=thirdparty%2Fmdadm.git diff --git a/Kill.c b/Kill.c index b841a5b7..ff52561d 100644 --- a/Kill.c +++ b/Kill.c @@ -29,7 +29,7 @@ #include "md_u.h" #include "md_p.h" -int Kill(char *dev, struct supertype *st, int force, int quiet, int noexcl) +int Kill(char *dev, struct supertype *st, int force, int verbose, int noexcl) { /* * Nothing fancy about Kill. It just zeroes out a superblock @@ -46,34 +46,33 @@ int Kill(char *dev, struct supertype *st, int force, int quiet, int noexcl) noexcl = 1; fd = open(dev, O_RDWR|(noexcl ? 0 : O_EXCL)); if (fd < 0) { - if (!quiet) - fprintf(stderr, Name ": Couldn't open %s for write - not zeroing\n", + if (verbose >= 0) + pr_err("Couldn't open %s for write - not zeroing\n", dev); return 2; } if (st == NULL) st = guess_super(fd); if (st == NULL || st->ss->init_super == NULL) { - if (!quiet) - fprintf(stderr, Name ": Unrecognised md component device - %s\n", dev); + if (verbose >= 0) + pr_err("Unrecognised md component device - %s\n", dev); close(fd); return 2; } st->ignore_hw_compat = 1; rv = st->ss->load_super(st, fd, dev); - if (force && rv >= 2) - rv = 0; /* ignore bad data in superblock */ - if (rv== 0 || (force && rv >= 2)) { + if (rv == 0 || (force && rv >= 2)) { st->ss->free_super(st); - st->ss->init_super(st, NULL, 0, "", NULL, NULL); + st->ss->init_super(st, NULL, NULL, "", NULL, NULL, + INVALID_SECTORS); if (st->ss->store_super(st, fd)) { - if (!quiet) - fprintf(stderr, Name ": Could not zero superblock on %s\n", + if (verbose >= 0) + pr_err("Could not zero superblock on %s\n", dev); rv = 1; } else if (rv) { - if (!quiet) - fprintf(stderr, Name ": superblock zeroed anyway\n"); + if (verbose >= 0) + pr_err("superblock zeroed anyway\n"); rv = 0; } } @@ -81,7 +80,7 @@ int Kill(char *dev, struct supertype *st, int force, int quiet, int noexcl) return rv; } -int Kill_subarray(char *dev, char *subarray, int quiet) +int Kill_subarray(char *dev, char *subarray, int verbose) { /* Delete a subarray out of a container, the subarry must be * inactive. The subarray string must be a subarray index @@ -97,36 +96,33 @@ int Kill_subarray(char *dev, char *subarray, int quiet) memset(st, 0, sizeof(*st)); - fd = open_subarray(dev, subarray, st, quiet); + fd = open_subarray(dev, subarray, st, verbose < 0); if (fd < 0) return 2; if (!st->ss->kill_subarray) { - if (!quiet) - fprintf(stderr, - Name ": Operation not supported for %s metadata\n", - st->ss->name); + if (verbose >= 0) + pr_err("Operation not supported for %s metadata\n", + st->ss->name); goto free_super; } - if (is_subarray_active(subarray, st->devname)) { - if (!quiet) - fprintf(stderr, - Name ": Subarray-%s still active, aborting\n", - subarray); + if (is_subarray_active(subarray, st->devnm)) { + if (verbose >= 0) + pr_err("Subarray-%s still active, aborting\n", + subarray); goto free_super; } - if (mdmon_running(st->devnum)) + if (mdmon_running(st->devnm)) st->update_tail = &st->updates; /* ok we've found our victim, drop the axe */ rv = st->ss->kill_subarray(st); if (rv) { - if (!quiet) - fprintf(stderr, - Name ": Failed to delete subarray-%s from %s\n", - subarray, dev); + if (verbose >= 0) + pr_err("Failed to delete subarray-%s from %s\n", + subarray, dev); goto free_super; } @@ -136,10 +132,9 @@ int Kill_subarray(char *dev, char *subarray, int quiet) else st->ss->sync_metadata(st); - if (!quiet) - fprintf(stderr, - Name ": Deleted subarray-%s from %s, UUIDs may have changed\n", - subarray, dev); + if (verbose >= 0) + pr_err("Deleted subarray-%s from %s, UUIDs may have changed\n", + subarray, dev); rv = 0;