X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=Kill.c;h=3924cc1cbfcdf20445e1587a70163b714034f0be;hb=e39b673e4892ef0085a8e59eee89d42e6191a688;hp=9f05e8bcfcbfa6851e038c052fb187714a64e2d1;hpb=947fd4ddb554fd2c3d81c190dfe63407f8771eb8;p=thirdparty%2Fmdadm.git diff --git a/Kill.c b/Kill.c index 9f05e8bc..3924cc1c 100644 --- a/Kill.c +++ b/Kill.c @@ -1,7 +1,7 @@ /* * mdadm - manage Linux "md" devices aka RAID arrays. * - * Copyright (C) 2001-2002 Neil Brown + * Copyright (C) 2001-2006 Neil Brown * * * This program is free software; you can redistribute it and/or modify @@ -34,7 +34,7 @@ #include "md_u.h" #include "md_p.h" -int Kill(char *dev, int force) +int Kill(char *dev, int force, int quiet) { /* * Nothing fancy about Kill. It just zeroes out a superblock @@ -47,13 +47,17 @@ int Kill(char *dev, int force) fd = open(dev, O_RDWR|O_EXCL); if (fd < 0) { - fprintf(stderr, Name ": Couldn't open %s for write - not zeroing\n", - dev); + if (!quiet) + fprintf(stderr, Name ": Couldn't open %s for write - not zeroing\n", + dev); + close(fd); return 1; } st = guess_super(fd); if (st == NULL) { - fprintf(stderr, Name ": Unrecognised md component device - %s\n", dev); + if (!quiet) + fprintf(stderr, Name ": Unrecognised md component device - %s\n", dev); + close(fd); return 1; } rv = st->ss->load_super(st, fd, &super, dev); @@ -63,13 +67,15 @@ int Kill(char *dev, int force) mdu_array_info_t info; info.major_version = -1; /* zero superblock */ free(super); - st->ss->init_super(st, &super, &info, ""); + st->ss->init_super(st, &super, &info, 0, "", NULL, NULL); if (st->ss->store_super(st, fd, super)) { - fprintf(stderr, Name ": Could not zero superblock on %s\n", - dev); + if (!quiet) + fprintf(stderr, Name ": Could not zero superblock on %s\n", + dev); rv = 1; } else if (rv) { - fprintf(stderr, Name ": superblock zeroed anyway\n"); + if (!quiet) + fprintf(stderr, Name ": superblock zeroed anyway\n"); rv = 0; } }