]> git.neil.brown.name Git - mdadm.git/commitdiff
quiet WaitClean()
authorDan Williams <dan.j.williams@intel.com>
Thu, 2 Oct 2008 23:07:21 +0000 (16:07 -0700)
committerDan Williams <dan.j.williams@intel.com>
Wed, 15 Oct 2008 21:43:57 +0000 (14:43 -0700)
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Monitor.c
mdadm.c
mdadm.h
mdmon.c

index a0803909b7608c884e0ea2b1b6af642d44208e3a..1c190577ab04417473d345ce89047e5896e99674 100644 (file)
--- a/Monitor.c
+++ b/Monitor.c
@@ -632,7 +632,7 @@ int Wait(char *dev)
 static char *clean_states[] = {
        "clear", "inactive", "readonly", "read-auto", "clean", NULL };
 
-int WaitClean(char *dev)
+int WaitClean(char *dev, int verbose)
 {
        int fd;
        struct mdinfo *mdi;
@@ -641,15 +641,17 @@ int WaitClean(char *dev)
 
        fd = open(dev, O_RDONLY); 
        if (fd < 0) {
-               fprintf(stderr, Name ": Couldn't open %s: %s\n", dev, strerror(errno));
+               if (verbose)
+                       fprintf(stderr, Name ": Couldn't open %s: %s\n", dev, strerror(errno));
                return 1;
        }
 
        devnum = fd2devnum(fd);
        mdi = sysfs_read(fd, devnum, GET_VERSION|GET_LEVEL|GET_SAFEMODE);
        if (!mdi) {
-               fprintf(stderr, Name ": Failed to read sysfs attributes for "
-                       "%s\n", dev);
+               if (verbose)
+                       fprintf(stderr, Name ": Failed to read sysfs attributes for "
+                               "%s\n", dev);
                close(fd);
                return 0;
        }
@@ -714,7 +716,7 @@ int WaitClean(char *dev)
                        rv = 0;
                } else
                        rv = 1;
-               if (rv)
+               if (rv && verbose)
                        fprintf(stderr, Name ": Error waiting for %s to be clean\n",
                                dev);
 
diff --git a/mdadm.c b/mdadm.c
index 9862063a73625c22cce6733657feca01d996de0a..d243620ffc4e5f9b8289b3a69828aefa0b8c3f38 100644 (file)
--- a/mdadm.c
+++ b/mdadm.c
@@ -1284,7 +1284,7 @@ int main(int argc, char *argv[])
                                case 'W':
                                        rv |= Wait(dv->devname); continue;
                                case Waitclean:
-                                       rv |= WaitClean(dv->devname); continue;
+                                       rv |= WaitClean(dv->devname, verbose-quiet); continue;
                                }
                                mdfd = open_mddev(dv->devname, 1);
                                if (mdfd>=0) {
diff --git a/mdadm.h b/mdadm.h
index 1eba5783231ee5530402848e8814ae15d39d3140..aea722811141ca82b95d3063f83019b57d17c287 100644 (file)
--- a/mdadm.h
+++ b/mdadm.h
@@ -723,7 +723,7 @@ extern int Monitor(mddev_dev_t devlist,
 
 extern int Kill(char *dev, int force, int quiet, int noexcl);
 extern int Wait(char *dev);
-extern int WaitClean(char *dev);
+extern int WaitClean(char *dev, int verbose);
 
 extern int Incremental(char *devname, int verbose, int runstop,
                       struct supertype *st, char *homehost, int autof);
diff --git a/mdmon.c b/mdmon.c
index 877cf1a16762315b6378fa62061cb155f4aed3bb..d6b99a21c9c19471337bda64f32ca84d25a95912 100644 (file)
--- a/mdmon.c
+++ b/mdmon.c
@@ -159,7 +159,7 @@ static void try_kill_monitor(char *devname)
        for ( ; mdstat; mdstat = mdstat->next)
                if (is_container_member(mdstat, devname)) {
                        sprintf(buf, "/dev/%s", mdstat->dev);
-                       WaitClean(buf);
+                       WaitClean(buf, 0);
                }
        free_mdstat(mdstat);
        remove_pidfile(devname);