]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Convert 'quiet' to 'not verbose' in various places.
authorNeilBrown <neilb@suse.de>
Mon, 9 Jul 2012 07:18:09 +0000 (17:18 +1000)
committerNeilBrown <neilb@suse.de>
Mon, 9 Jul 2012 07:18:09 +0000 (17:18 +1000)
If we change some functions to accept 'verbose', where <0 means to be
quiet, in place of 'quiet', then we will be able to merge
'quiet' and 'verbose' together for simplicity.

Signed-off-by: NeilBrown <neilb@suse.de>
Detail.c
Grow.c
Kill.c
Manage.c
mdadm.c
mdadm.h
super-ddf.c
super-intel.c
super0.c
super1.c

index 4133c3cc9bda2e7654c77b67faf8f15167cd0ea0..827ce6d0b05b89e8bdb606a1c7990171c59c5863 100644 (file)
--- a/Detail.c
+++ b/Detail.c
@@ -616,11 +616,11 @@ int Detail_Platform(struct superswitch *ss, int scan, int verbose)
        if (ss && ss->detail_platform)
                err = ss->detail_platform(verbose, 0);
        else if (ss) {
-               if (verbose)
+               if (verbose > 0)
                        pr_err("%s metadata is platform independent\n",
                                ss->name ? : "[no name]");
        } else if (!scan) {
-               if (verbose)
+               if (verbose > 0)
                        pr_err("specify a metadata type or --scan\n");
        }
 
@@ -632,11 +632,11 @@ int Detail_Platform(struct superswitch *ss, int scan, int verbose)
 
                if (meta == ss)
                        continue;
-               if (verbose)
+               if (verbose > 0)
                        pr_err("checking metadata %s\n",
                                meta->name ? : "[no name]");
                if (!meta->detail_platform) {
-                       if (verbose)
+                       if (verbose > 0)
                                pr_err("%s metadata is platform independent\n",
                                        meta->name ? : "[no name]");
                } else
diff --git a/Grow.c b/Grow.c
index 8aa0a1392241a6afd052d3cd42a7d3b4108422dd..24995ad8ed25702ac9304a1a13250467b9937eb5 100644 (file)
--- a/Grow.c
+++ b/Grow.c
@@ -1418,7 +1418,7 @@ static int set_array_size(struct supertype *st, struct mdinfo *sra,
 static int reshape_array(char *container, int fd, char *devname,
                         struct supertype *st, struct mdinfo *info,
                         int force, struct mddev_dev *devlist,
-                        char *backup_file, int quiet, int forked,
+                        char *backup_file, int verbose, int forked,
                         int restart, int freeze_reshape);
 static int reshape_container(char *container, char *devname,
                             int mdfd,
@@ -1426,9 +1426,9 @@ static int reshape_container(char *container, char *devname,
                             struct mdinfo *info,
                             int force,
                             char *backup_file,
-                            int quiet, int restart, int freeze_reshape);
+                            int verbose, int restart, int freeze_reshape);
 
-int Grow_reshape(char *devname, int fd, int quiet, char *backup_file,
+int Grow_reshape(char *devname, int fd, int verbose, char *backup_file,
                 long long size,
                 int level, char *layout_str, int chunksize, int raid_disks,
                 struct mddev_dev *devlist,
@@ -1621,7 +1621,7 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file,
                        orig_size = array.size;
 
                if (reshape_super(st, size, UnSet, UnSet, 0, 0, UnSet, NULL,
-                                 devname, APPLY_METADATA_CHANGES, !quiet)) {
+                                 devname, APPLY_METADATA_CHANGES, verbose > 0)) {
                        rv = 1;
                        goto release;
                }
@@ -1755,7 +1755,7 @@ size_change_error:
                        if (reshape_super(st, orig_size, UnSet, UnSet, 0, 0,
                                          UnSet, NULL, devname,
                                          ROLLBACK_METADATA_CHANGES,
-                                         !quiet) == 0)
+                                         verbose) == 0)
                                sync_metadata(st);
                        pr_err("Cannot set device size for %s: %s\n",
                                devname, strerror(err));
@@ -1777,7 +1777,7 @@ size_change_error:
                size = get_component_size(fd)/2;
                if (size == 0)
                        size = array.size;
-               if (!quiet) {
+               if (verbose >= 0) {
                        if (size == orig_size)
                                pr_err("component size of %s "
                                        "unchanged at %lluK\n",
@@ -1800,7 +1800,7 @@ size_change_error:
            (chunksize == 0 || chunksize == array.chunk_size) &&
            (raid_disks == 0 || raid_disks == array.raid_disks)) {
                /* Nothing more to do */
-               if (!changed && !quiet)
+               if (!changed && verbose >= 0)
                        pr_err("%s: no change requested\n",
                                devname);
                goto release;
@@ -1955,7 +1955,7 @@ size_change_error:
                        if (ioctl(fd, SET_ARRAY_INFO, &array) != 0) {
                                pr_err("failed to set new layout\n");
                                rv = 1;
-                       } else if (!quiet)
+                       } else if (verbose >= 0)
                                printf("layout for %s set to %d\n",
                                       devname, array.layout);
                }
@@ -1969,7 +1969,7 @@ size_change_error:
                 * performed at the level of the container
                 */
                rv = reshape_container(container, devname, -1, st, &info,
-                                      force, backup_file, quiet, 0, 0);
+                                      force, backup_file, verbose, 0, 0);
                frozen = 0;
        } else {
                /* get spare devices from external metadata
@@ -1992,13 +1992,13 @@ size_change_error:
                                  info.new_layout, info.new_chunk,
                                  info.array.raid_disks, info.delta_disks,
                                  backup_file, devname, APPLY_METADATA_CHANGES,
-                                 quiet)) {
+                                 verbose)) {
                        rv = 1;
                        goto release;
                }
                sync_metadata(st);
                rv = reshape_array(container, fd, devname, st, &info, force,
-                                  devlist, backup_file, quiet, 0, 0, 0);
+                                  devlist, backup_file, verbose, 0, 0, 0);
                frozen = 0;
        }
 release:
@@ -2068,7 +2068,7 @@ static int verify_reshape_position(struct mdinfo *info, int level)
 static int reshape_array(char *container, int fd, char *devname,
                         struct supertype *st, struct mdinfo *info,
                         int force, struct mddev_dev *devlist,
-                        char *backup_file, int quiet, int forked,
+                        char *backup_file, int verbose, int forked,
                         int restart, int freeze_reshape)
 {
        struct reshape reshape;
@@ -2208,7 +2208,7 @@ static int reshape_array(char *container, int fd, char *devname,
                                         " before level can be changed\n");
                        goto release;
                }
-               if (!quiet)
+               if (verbose >= 0)
                        pr_err("level of %s changed to %s\n",
                                devname, c);
                orig_level = array.level;
@@ -2266,7 +2266,7 @@ static int reshape_array(char *container, int fd, char *devname,
         * level and frozen, we can safely add them.
         */
        if (devlist)
-               Manage_subdevs(devname, fd, devlist, !quiet,
+               Manage_subdevs(devname, fd, devlist, verbose,
                               0,NULL, 0);
 
        if (reshape.backup_blocks == 0) {
@@ -2286,7 +2286,7 @@ static int reshape_array(char *container, int fd, char *devname,
                        if (ioctl(fd, SET_ARRAY_INFO, &array) != 0) {
                                pr_err("failed to set new layout\n");
                                goto release;
-                       } else if (!quiet)
+                       } else if (verbose >= 0)
                                printf("layout for %s set to %d\n",
                                       devname, array.layout);
                }
@@ -2297,7 +2297,7 @@ static int reshape_array(char *container, int fd, char *devname,
                        if (ioctl(fd, SET_ARRAY_INFO, &array) != 0) {
                                pr_err("failed to set raid disks\n");
                                goto release;
-                       } else if (!quiet) {
+                       } else if (verbose >= 0) {
                                printf("raid_disks for %s set to %d\n",
                                       devname, array.raid_disks);
                        }
@@ -2308,7 +2308,7 @@ static int reshape_array(char *container, int fd, char *devname,
                                          "chunk_size", info->new_chunk) != 0) {
                                pr_err("failed to set chunk size\n");
                                goto release;
-                       } else if (!quiet)
+                       } else if (verbose >= 0)
                                printf("chunk size for %s set to %d\n",
                                       devname, array.chunk_size);
                }
@@ -2666,7 +2666,7 @@ int reshape_container(char *container, char *devname,
                      struct mdinfo *info,
                      int force,
                      char *backup_file,
-                     int quiet, int restart, int freeze_reshape)
+                     int verbose, int restart, int freeze_reshape)
 {
        struct mdinfo *cc = NULL;
        int rv = restart;
@@ -2680,7 +2680,7 @@ int reshape_container(char *container, char *devname,
                          info->new_layout, info->new_chunk,
                          info->array.raid_disks, info->delta_disks,
                          backup_file, devname, APPLY_METADATA_CHANGES,
-                         quiet)) {
+                         verbose)) {
                unfreeze(st);
                return 1;
        }
@@ -2792,7 +2792,7 @@ int reshape_container(char *container, char *devname,
 
                rv = reshape_array(container, fd, adev, st,
                                   content, force, NULL,
-                                  backup_file, quiet, 1, restart,
+                                  backup_file, verbose, 1, restart,
                                   freeze_reshape);
                close(fd);
 
diff --git a/Kill.c b/Kill.c
index a271b65c0a15743db5e22f45625846a029bfa690..6e426c0e3c6661f5d5eaf2963a963f1c5c2bd954 100644 (file)
--- 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,7 +46,7 @@ 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)
+               if (verbose >= 0)
                        pr_err("Couldn't open %s for write - not zeroing\n",
                                dev);
                return 2;
@@ -54,7 +54,7 @@ int Kill(char *dev, struct supertype *st, int force, int quiet, int noexcl)
        if (st == NULL)
                st = guess_super(fd);
        if (st == NULL || st->ss->init_super == NULL) {
-               if (!quiet)
+               if (verbose >= 0)
                        pr_err("Unrecognised md component device - %s\n", dev);
                close(fd);
                return 2;
@@ -65,12 +65,12 @@ int Kill(char *dev, struct supertype *st, int force, int quiet, int noexcl)
                st->ss->free_super(st);
                st->ss->init_super(st, NULL, 0, "", NULL, NULL);
                if (st->ss->store_super(st, fd)) {
-                       if (!quiet)
+                       if (verbose >= 0)
                                pr_err("Could not zero superblock on %s\n",
                                        dev);
                        rv = 1;
                } else if (rv) {
-                       if (!quiet)
+                       if (verbose >= 0)
                                pr_err("superblock zeroed anyway\n");
                        rv = 0;
                }
@@ -79,7 +79,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
@@ -95,19 +95,19 @@ 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)
+               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)
+               if (verbose >= 0)
                        pr_err("Subarray-%s still active, aborting\n",
                               subarray);
                goto free_super;
@@ -119,7 +119,7 @@ int Kill_subarray(char *dev, char *subarray, int quiet)
        /* ok we've found our victim, drop the axe */
        rv = st->ss->kill_subarray(st);
        if (rv) {
-               if (!quiet)
+               if (verbose >= 0)
                        pr_err("Failed to delete subarray-%s from %s\n",
                               subarray, dev);
                goto free_super;
@@ -131,7 +131,7 @@ int Kill_subarray(char *dev, char *subarray, int quiet)
        else
                st->ss->sync_metadata(st);
 
-       if (!quiet)
+       if (verbose >= 0)
                pr_err("Deleted subarray-%s from %s, UUIDs may have changed\n",
                       subarray, dev);
 
index 6ffa78c987ee7848fd21c0320383d7d30e7c64c6..064ccfef8392139ed8bdbec6f6cd45463ab7afe0 100644 (file)
--- a/Manage.c
+++ b/Manage.c
@@ -174,17 +174,20 @@ static void remove_devices(int devnum, char *path)
 }
        
 
-int Manage_runstop(char *devname, int fd, int runstop, int quiet)
+int Manage_runstop(char *devname, int fd, int runstop,
+                  int verbose, int will_retry)
 {
        /* Run or stop the array. array must already be configured
-        * required >= 0.90.0
-        * Only print failure messages if quiet == 0;
-        * quiet > 0 means really be quiet
-        * quiet < 0 means we will try again if it fails.
+        * 'Run' requires >= 0.90.0
+        * 'will_retry' is only relevant for 'stop', and means
+        * that error messages are not wanted.
         */
        mdu_param_t param; /* unused */
        int rv = 0;
 
+       if (will_retry && verbose == 0)
+               verbose = -1;
+
        if (runstop == -1 && md_get_version(fd) < 9000) {
                if (ioctl(fd, STOP_MD, 0)) {
                        pr_err("stopping device %s "
@@ -198,20 +201,15 @@ int Manage_runstop(char *devname, int fd, int runstop, int quiet)
                pr_err("need md driver version 0.90.0 or later\n");
                return 1;
        }
-       /*
-       if (ioctl(fd, GET_ARRAY_INFO, &array)) {
-               pr_err("%s does not appear to be active.\n",
-                       devname);
-               return 1;
-       }
-       */
+
        if (runstop>0) {
                if (ioctl(fd, RUN_ARRAY, &param)) {
-                       pr_err("failed to run array %s: %s\n",
-                               devname, strerror(errno));
+                       if (verbose >= 0)
+                               pr_err("failed to run array %s: %s\n",
+                                      devname, strerror(errno));
                        return 1;
                }
-               if (quiet <= 0)
+               if (verbose >= 0)
                        pr_err("started %s\n", devname);
        } else if (runstop < 0){
                struct map_ent *map = NULL;
@@ -232,11 +230,12 @@ int Manage_runstop(char *devname, int fd, int runstop, int quiet)
                if (fd < 0 || fd2devnum(fd) != devnum) {
                        if (fd >= 0)
                                close(fd);
-                       pr_err("Cannot get exclusive access to %s:"
-                              "Perhaps a running "
-                              "process, mounted filesystem "
-                              "or active volume group?\n",
-                              devname);
+                       if (verbose >= 0)
+                               pr_err("Cannot get exclusive access to %s:"
+                                      "Perhaps a running "
+                                      "process, mounted filesystem "
+                                      "or active volume group?\n",
+                                      devname);
                        return 1;
                }
                mdi = sysfs_read(fd, -1, GET_LEVEL|GET_VERSION);
@@ -256,9 +255,10 @@ int Manage_runstop(char *devname, int fd, int runstop, int quiet)
                                usleep(200000);
                                count--;
                        }
-                       if (err && !quiet) {
-                               pr_err("failed to stop array %s: %s\n",
-                                      devname, strerror(errno));
+                       if (err) {
+                               if (verbose >= 0)
+                                       pr_err("failed to stop array %s: %s\n",
+                                              devname, strerror(errno));
                                rv = 1;
                                goto out;
                        }
@@ -268,9 +268,10 @@ int Manage_runstop(char *devname, int fd, int runstop, int quiet)
 
                        fd = open_dev_excl(devnum);
                        if (fd < 0) {
-                               pr_err("failed to completely stop %s"
-                                      ": Device is busy\n",
-                                      devname);
+                               if (verbose >= 0)
+                                       pr_err("failed to completely stop %s"
+                                              ": Device is busy\n",
+                                              devname);
                                rv = 1;
                                goto out;
                        }
@@ -294,7 +295,7 @@ int Manage_runstop(char *devname, int fd, int runstop, int quiet)
                                    strncmp(m->metadata_version, "external:", 9)==0 &&
                                    is_subarray(m->metadata_version+9) &&
                                    devname2devnum(m->metadata_version+10) == devnum) {
-                                       if (!quiet)
+                                       if (verbose >= 0)
                                                pr_err("Cannot stop container %s: "
                                                       "member %s still active\n",
                                                       devname, m->dev);
@@ -316,7 +317,7 @@ int Manage_runstop(char *devname, int fd, int runstop, int quiet)
                        count --;
                }
                if (fd >= 0 && err) {
-                       if (quiet == 0) {
+                       if (verbose >= 0) {
                                pr_err("failed to stop array %s: %s\n",
                                       devname, strerror(errno));
                                if (errno == EBUSY)
@@ -345,7 +346,7 @@ int Manage_runstop(char *devname, int fd, int runstop, int quiet)
                }
 
 
-               if (quiet <= 0)
+               if (verbose >= 0)
                        pr_err("stopped %s\n", devname);
                map_lock(&map);
                map_remove(&map, devnum);
@@ -1204,19 +1205,19 @@ int autodetect(void)
        return rv;
 }
 
-int Update_subarray(char *dev, char *subarray, char *update, struct mddev_ident *ident, int quiet)
+int Update_subarray(char *dev, char *subarray, char *update, struct mddev_ident *ident, int verbose)
 {
        struct supertype supertype, *st = &supertype;
        int fd, rv = 2;
 
        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->update_subarray) {
-               if (!quiet)
+               if (verbose >= 0)
                        pr_err("Operation not supported for %s metadata\n",
                               st->ss->name);
                goto free_super;
@@ -1228,7 +1229,7 @@ int Update_subarray(char *dev, char *subarray, char *update, struct mddev_ident
        rv = st->ss->update_subarray(st, subarray, update, ident);
 
        if (rv) {
-               if (!quiet)
+               if (verbose >= 0)
                        pr_err("Failed to update %s of subarray-%s in %s\n",
                                update, subarray, dev);
        } else if (st->update_tail)
@@ -1236,7 +1237,7 @@ int Update_subarray(char *dev, char *subarray, char *update, struct mddev_ident
        else
                st->ss->sync_metadata(st);
 
-       if (rv == 0 && strcmp(update, "name") == 0 && !quiet)
+       if (rv == 0 && strcmp(update, "name") == 0 && verbose >= 0)
                pr_err("Updated subarray-%s name from %s, UUIDs may have changed\n",
                       subarray, dev);
 
diff --git a/mdadm.c b/mdadm.c
index 55bfa24dc177a44a3ca2ac598cfa5b33f4b105d0..40324c34d520832a4b6b7fcbac05f0d92f117a9e 100644 (file)
--- a/mdadm.c
+++ b/mdadm.c
@@ -38,12 +38,12 @@ static int scan_assemble(int autof, struct supertype *ss,
                         int freeze_reshape);
 static int misc_scan(char devmode, int verbose, int export, int test,
                     char *homehost, char *prefer);
-static int stop_scan(int quiet);
+static int stop_scan(int verbose);
 static int misc_list(struct mddev_dev *devlist,
                     int brief, int verbose, int export, int test,
                     char *homehost, char *prefer, char *subarray,
                     char *update, struct mddev_ident *ident,
-                    struct supertype *ss, int force, int quiet);
+                    struct supertype *ss, int force);
 
 
 int main(int argc, char *argv[])
@@ -1239,7 +1239,7 @@ int main(int argc, char *argv[])
                if (!rv && c.readonly < 0)
                        rv = Manage_ro(devlist->devname, mdfd, c.readonly);
                if (!rv && c.runstop)
-                       rv = Manage_runstop(devlist->devname, mdfd, c.runstop, c.quiet);
+                       rv = Manage_runstop(devlist->devname, mdfd, c.runstop, c.verbose-c.quiet, 0);
                break;
        case ASSEMBLE:
                if (devs_found == 1 && ident.uuid_set == 0 &&
@@ -1371,18 +1371,18 @@ int main(int argc, char *argv[])
                                pr_err("No devices listed in %s\n", configfile?configfile:DefaultConfFile);
                                exit(1);
                        }
-                       if (c.brief && c.verbose)
+                       if (c.brief && c.verbose > 0)
                                c.brief = 2;
-                       rv = Examine(devlist, c.scan?(c.verbose>1?0:c.verbose+1):c.brief,
+                       rv = Examine(devlist, c.scan?(c.verbose>1?0:c.verbose):c.brief,
                                     c.export, c.scan,
                                     c.SparcAdjust, ss, c.homehost);
                } else if (devmode == DetailPlatform) {
-                       rv = Detail_Platform(ss ? ss->ss : NULL, ss ? c.scan : 1, c.verbose);
+                       rv = Detail_Platform(ss ? ss->ss : NULL, ss ? c.scan : 1, c.verbose-c.quiet);
                } else if (devlist == NULL) {
                        if (devmode == 'S' && c.scan)
-                               rv = stop_scan(c.quiet);
+                               rv = stop_scan(c.verbose-c.quiet);
                        else if ((devmode == 'D' || devmode == Waitclean) && c.scan)
-                               rv = misc_scan(devmode, c.verbose, c.export,
+                               rv = misc_scan(devmode, c.verbose-c.quiet, c.export,
                                               c.test, c.homehost, c.prefer);
                        else if (devmode == UdevRules)
                                rv = Write_rules(udev_filename);
@@ -1391,10 +1391,10 @@ int main(int argc, char *argv[])
                                exit(2);
                        }
                } else
-                       rv = misc_list(devlist, c.brief, c.verbose, c.export, c.test,
+                       rv = misc_list(devlist, c.brief, c.verbose-c.quiet, c.export, c.test,
                                       c.homehost, c.prefer, c.subarray, c.update,
                                       &ident,
-                                      ss, c.force, c.quiet);
+                                      ss, c.force);
                break;
        case MONITOR:
                if (!devlist && !c.scan) {
@@ -1482,10 +1482,10 @@ int main(int argc, char *argv[])
                } else if (grow_continue)
                        rv = Grow_continue_command(devlist->devname,
                                                   mdfd, c.backup_file,
-                                                  c.verbose);
+                                                  c.verbose-c.quiet);
                else if (size >= 0 || raiddisks != 0 || layout_str != NULL
                         || chunk != 0 || level != UnSet) {
-                       rv = Grow_reshape(devlist->devname, mdfd, c.quiet, c.backup_file,
+                       rv = Grow_reshape(devlist->devname, mdfd, c.verbose-c.quiet, c.backup_file,
                                          size, level, layout_str, chunk, raiddisks,
                                          devlist->next,
                                          assume_clean, c.force);
@@ -1505,7 +1505,7 @@ int main(int argc, char *argv[])
                                pr_err("--incremental --scan --fail not supported.\n");
                                break;
                        }
-                       rv = IncrementalScan(c.verbose);
+                       rv = IncrementalScan(c.verbose-c.quiet);
                }
                if (!devlist) {
                        if (!rebuild_map && !c.scan) {
@@ -1684,7 +1684,7 @@ static int misc_scan(char devmode, int verbose, int export, int test,
        return rv;
 }
 
-static int stop_scan(int quiet)
+static int stop_scan(int verbose)
 {
        /* apply --stop to all devices in /proc/mdstat */
        /* Due to possible stacking of devices, repeat until
@@ -1710,7 +1710,7 @@ static int stop_scan(int quiet)
                        }
                        mdfd = open_mddev(name, 1);
                        if (mdfd >= 0) {
-                               if (Manage_runstop(name, mdfd, -1, quiet?1:last?0:-1))
+                               if (Manage_runstop(name, mdfd, -1, verbose, !last))
                                        err = 1;
                                else
                                        progress = 1;
@@ -1730,7 +1730,7 @@ static int misc_list(struct mddev_dev *devlist,
                     int brief, int verbose, int export, int test,
                     char *homehost, char *prefer, char *subarray,
                     char *update, struct mddev_ident *ident,
-                    struct supertype *ss, int force, int quiet)
+                    struct supertype *ss, int force)
 {
        struct mddev_dev *dv;
        int rv = 0;
@@ -1746,12 +1746,12 @@ static int misc_list(struct mddev_dev *devlist,
                        continue;
                case KillOpt: /* Zero superblock */
                        if (ss)
-                               rv |= Kill(dv->devname, ss, force, quiet,0);
+                               rv |= Kill(dv->devname, ss, force, verbose,0);
                        else {
-                               int q = quiet;
+                               int v = verbose;
                                do {
-                                       rv |= Kill(dv->devname, NULL, force, q, 0);
-                                       q = 1;
+                                       rv |= Kill(dv->devname, NULL, force, v, 0);
+                                       v = -1;
                                } while (rv == 0);
                                rv &= ~2;
                        }
@@ -1764,9 +1764,9 @@ static int misc_list(struct mddev_dev *devlist,
                case WaitOpt:
                        rv |= Wait(dv->devname); continue;
                case Waitclean:
-                       rv |= WaitClean(dv->devname, -1, verbose-quiet); continue;
+                       rv |= WaitClean(dv->devname, -1, verbose); continue;
                case KillSubarray:
-                       rv |= Kill_subarray(dv->devname, subarray, quiet);
+                       rv |= Kill_subarray(dv->devname, subarray, verbose);
                        continue;
                case UpdateSubarray:
                        if (update == NULL) {
@@ -1775,16 +1775,16 @@ static int misc_list(struct mddev_dev *devlist,
                                continue;
                        }
                        rv |= Update_subarray(dv->devname, subarray,
-                                             update, ident, quiet);
+                                             update, ident, verbose);
                        continue;
                }
                mdfd = open_mddev(dv->devname, 1);
                if (mdfd>=0) {
                        switch(dv->disposition) {
                        case 'R':
-                               rv |= Manage_runstop(dv->devname, mdfd, 1, quiet); break;
+                               rv |= Manage_runstop(dv->devname, mdfd, 1, verbose, 0); break;
                        case 'S':
-                               rv |= Manage_runstop(dv->devname, mdfd, -1, quiet); break;
+                               rv |= Manage_runstop(dv->devname, mdfd, -1, verbose, 0); break;
                        case 'o':
                                rv |= Manage_ro(dv->devname, mdfd, 1); break;
                        case 'w':
diff --git a/mdadm.h b/mdadm.h
index abbe3a87d1c2fc607f9f669eb5bafcef4ccc67e0..a32021b61e5b385700fc142f26a11df1942e230c 100644 (file)
--- a/mdadm.h
+++ b/mdadm.h
@@ -1065,7 +1065,8 @@ extern int add_dev(const char *name, const struct stat *stb, int flag, struct FT
 
 
 extern int Manage_ro(char *devname, int fd, int readonly);
-extern int Manage_runstop(char *devname, int fd, int runstop, int quiet);
+extern int Manage_runstop(char *devname, int fd, int runstop, int quiet,
+                         int will_retry);
 extern int Manage_resize(char *devname, int fd, long long size, int raid_disks);
 extern int Manage_subdevs(char *devname, int fd,
                          struct mddev_dev *devlist, int verbose, int test,
@@ -1127,8 +1128,8 @@ extern int Monitor(struct mddev_dev *devlist,
                   int dosyslog, int test, char *pidfile, int increments,
                   int share, char *prefer);
 
-extern int Kill(char *dev, struct supertype *st, int force, int quiet, int noexcl);
-extern int Kill_subarray(char *dev, char *subarray, int quiet);
+extern int Kill(char *dev, struct supertype *st, int force, int verbose, int noexcl);
+extern int Kill_subarray(char *dev, char *subarray, int verbose);
 extern int Update_subarray(char *dev, char *subarray, char *update, struct mddev_ident *ident, int quiet);
 extern int Wait(char *dev);
 extern int WaitClean(char *dev, int sock, int verbose);
index 1ddf9d1a14a1eb387bef84b123b4cf2360d7cede..d006a04d2c3dc41223ee4d8eb912060ba40fb72a 100644 (file)
@@ -2477,7 +2477,7 @@ static int write_init_super_ddf(struct supertype *st)
        } else {        
                struct dl *d;
                for (d = ddf->dlist; d; d=d->next)
-                       while (Kill(d->devname, NULL, 0, 1, 1) == 0);
+                       while (Kill(d->devname, NULL, 0, -1, 1) == 0);
                return __write_init_super_ddf(st);
        }
 }
index 2f04302d5e29de622e763844c086ab418c4b7242..10fbcd6fee3dbc94f4da51115a9a02c9402c005e 100644 (file)
@@ -1567,7 +1567,7 @@ static int ahci_enumerate_ports(const char *hba_path, int port_count, int host_b
        unsigned long port_mask = (1 << port_count) - 1;
 
        if (port_count > (int)sizeof(port_mask) * 8) {
-               if (verbose)
+               if (verbose > 0)
                        pr_err("port_count %d out of range\n", port_count);
                return 2;
        }
@@ -1600,14 +1600,14 @@ static int ahci_enumerate_ports(const char *hba_path, int port_count, int host_b
 
                /* retrieve the scsi device type */
                if (asprintf(&device, "/sys/dev/block/%d:%d/device/xxxxxxx", major, minor) < 0) {
-                       if (verbose)
+                       if (verbose > 0)
                                pr_err("failed to allocate 'device'\n");
                        err = 2;
                        break;
                }
                sprintf(device, "/sys/dev/block/%d:%d/device/type", major, minor);
                if (load_sys(device, buf) != 0) {
-                       if (verbose)
+                       if (verbose > 0)
                                pr_err("failed to read device type for %s\n",
                                        path);
                        err = 2;
@@ -1660,7 +1660,7 @@ static int ahci_enumerate_ports(const char *hba_path, int port_count, int host_b
                /* chop device path to 'host%d' and calculate the port number */
                c = strchr(&path[hba_len], '/');
                if (!c) {
-                       if (verbose)
+                       if (verbose > 0)
                                pr_err("%s - invalid path name\n", path + hba_len);
                        err = 2;
                        break;
@@ -1669,7 +1669,7 @@ static int ahci_enumerate_ports(const char *hba_path, int port_count, int host_b
                if (sscanf(&path[hba_len], "host%d", &port) == 1)
                        port -= host_base;
                else {
-                       if (verbose) {
+                       if (verbose > 0) {
                                *c = '/'; /* repair the full string */
                                pr_err("failed to determine port number for %s\n",
                                        path);
@@ -1836,12 +1836,12 @@ static int detail_platform_imsm(int verbose, int enumerate_only)
 
        list = find_intel_devices();
        if (!list) {
-               if (verbose)
+               if (verbose > 0)
                        pr_err("no active Intel(R) RAID "
                                "controller found.\n");
                free_sys_dev(&list);
                return 2;
-       } else if (verbose)
+       } else if (verbose > 0)
                print_found_intel_controllers(list);
 
        for (hba = list; hba; hba = hba->next) {
@@ -1860,7 +1860,7 @@ static int detail_platform_imsm(int verbose, int enumerate_only)
                if (hba->type == SYS_DEV_SATA) {
                        host_base = ahci_get_port_count(hba->path, &port_count);
                        if (ahci_enumerate_ports(hba->path, port_count, host_base, verbose)) {
-                               if (verbose)
+                               if (verbose > 0)
                                        pr_err("failed to enumerate "
                                                "ports on SATA controller at %s.", hba->pci_id);
                                result |= 2;
@@ -5175,7 +5175,7 @@ static int write_init_super_imsm(struct supertype *st)
        } else {
                struct dl *d;
                for (d = super->disks; d; d = d->next)
-                       Kill(d->devname, NULL, 0, 1, 1);
+                       Kill(d->devname, NULL, 0, -1, 1);
                return write_super_imsm(st, 1);
        }
 }
@@ -5220,7 +5220,7 @@ static int validate_geometry_imsm_container(struct supertype *st, int level,
 
        fd = open(dev, O_RDONLY|O_EXCL, 0);
        if (fd < 0) {
-               if (verbose)
+               if (verbose > 0)
                        pr_err("imsm: Cannot open %s: %s\n",
                                dev, strerror(errno));
                return 0;
@@ -5234,7 +5234,7 @@ static int validate_geometry_imsm_container(struct supertype *st, int level,
         * note that there is no fd for the disks in array.
         */
        super = alloc_super();
-       rv = find_intel_hba_capability(fd, super, verbose ? dev : NULL);
+       rv = find_intel_hba_capability(fd, super, verbose > 0 ? dev : NULL);
        if (rv != 0) {
 #if DEBUG
                char str[256];
index 55e71e8c582fe9d8b91ced8c9ed7cff5a20edc61..8ca82e1b159181ac2bbcee7602a3251f0ce9c360 100644 (file)
--- a/super0.c
+++ b/super0.c
@@ -768,7 +768,7 @@ static int write_init_super0(struct supertype *st)
                        continue;
                if (di->fd == -1)
                        continue;
-               while (Kill(di->devname, NULL, 0, 1, 1) == 0)
+               while (Kill(di->devname, NULL, 0, -1, 1) == 0)
                        ;
 
                sb->disks[di->disk.number].state &= ~(1<<MD_DISK_FAULTY);
index ff7c967d2a41d1f9a24b7cbca7fc45ee231556be..b04945f51f3efbfff203e502f05ec9ebf94dfca5 100644 (file)
--- a/super1.c
+++ b/super1.c
@@ -1101,7 +1101,7 @@ static int write_init_super1(struct supertype *st)
                if (di->fd < 0)
                        continue;
 
-               while (Kill(di->devname, NULL, 0, 1, 1) == 0)
+               while (Kill(di->devname, NULL, 0, -1, 1) == 0)
                        ;
 
                sb->dev_number = __cpu_to_le32(di->disk.number);