summaryrefslogtreecommitdiffstats
path: root/Manage.c
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2005-06-14 06:32:18 +0000
committerNeil Brown <neilb@suse.de>2005-06-14 06:32:18 +0000
commit91f068bf5cc423d7f7d3feba63e4c7add3a786de (patch)
treee6a730c4b25408514b2e3250ea83d02e6400250a /Manage.c
parentb8f72a621b55d23595e4743d7b697fed0e30583a (diff)
downloadmdadm-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.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/Manage.c b/Manage.c
index 2806201..a9e8956 100644
--- a/Manage.c
+++ b/Manage.c
@@ -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;
}
}