From: Dan Williams Date: Thu, 2 Oct 2008 23:07:21 +0000 (-0700) Subject: quiet WaitClean() X-Git-Tag: mdadm-3.0-devel2~74 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=27dec8fae303ab356aa786e20414f89d60be08a4;p=thirdparty%2Fmdadm.git quiet WaitClean() Signed-off-by: Dan Williams --- diff --git a/Monitor.c b/Monitor.c index a0803909..1c190577 100644 --- 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 9862063a..d243620f 100644 --- 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 1eba5783..aea72281 100644 --- 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 877cf1a1..d6b99a21 100644 --- 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);