diff options
author | Neil Brown <neilb@suse.de> | 2005-06-14 06:32:18 +0000 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2005-06-14 06:32:18 +0000 |
commit | 91f068bf5cc423d7f7d3feba63e4c7add3a786de (patch) | |
tree | e6a730c4b25408514b2e3250ea83d02e6400250a /Manage.c | |
parent | b8f72a621b55d23595e4743d7b697fed0e30583a (diff) | |
download | mdadm-91f068bf5cc423d7f7d3feba63e4c7add3a786de.tar.gz mdadm-91f068bf5cc423d7f7d3feba63e4c7add3a786de.tar.xz mdadm-91f068bf5cc423d7f7d3feba63e4c7add3a786de.zip |
Retry --stop --scan until all stoppable devices have been stopped
This is needed to reliably stop stacked arrays
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Diffstat (limited to 'Manage.c')
-rw-r--r-- | Manage.c | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -72,7 +72,7 @@ int Manage_ro(char *devname, int fd, int readonly) return 0; } -int Manage_runstop(char *devname, int fd, int runstop) +int Manage_runstop(char *devname, int fd, int runstop, int quiet) { /* Run or stop the array. array must already be configured * required >= 0.90.0 @@ -81,8 +81,8 @@ int Manage_runstop(char *devname, int fd, int runstop) if (runstop == -1 && md_get_version(fd) < 9000) { if (ioctl(fd, STOP_MD, 0)) { - fprintf(stderr, Name ": stopping device %s failed: %s\n", - devname, strerror(errno)); + if (!quiet) fprintf(stderr, Name ": stopping device %s failed: %s\n", + devname, strerror(errno)); return 1; } } @@ -106,8 +106,9 @@ int Manage_runstop(char *devname, int fd, int runstop) } } else if (runstop < 0){ if (ioctl(fd, STOP_ARRAY, NULL)) { - fprintf(stderr, Name ": fail to stop array %s: %s\n", - devname, strerror(errno)); + if (!quiet) + fprintf(stderr, Name ": fail to stop array %s: %s\n", + devname, strerror(errno)); return 1; } } |