Convert 'quiet' to 'not verbose' in various places.

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>
This commit is contained in:
NeilBrown 2012-07-09 17:18:09 +10:00
parent 9e33d55609
commit ba728be72f
10 changed files with 113 additions and 111 deletions

View File

@ -616,11 +616,11 @@ int Detail_Platform(struct superswitch *ss, int scan, int verbose)
if (ss && ss->detail_platform) if (ss && ss->detail_platform)
err = ss->detail_platform(verbose, 0); err = ss->detail_platform(verbose, 0);
else if (ss) { else if (ss) {
if (verbose) if (verbose > 0)
pr_err("%s metadata is platform independent\n", pr_err("%s metadata is platform independent\n",
ss->name ? : "[no name]"); ss->name ? : "[no name]");
} else if (!scan) { } else if (!scan) {
if (verbose) if (verbose > 0)
pr_err("specify a metadata type or --scan\n"); 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) if (meta == ss)
continue; continue;
if (verbose) if (verbose > 0)
pr_err("checking metadata %s\n", pr_err("checking metadata %s\n",
meta->name ? : "[no name]"); meta->name ? : "[no name]");
if (!meta->detail_platform) { if (!meta->detail_platform) {
if (verbose) if (verbose > 0)
pr_err("%s metadata is platform independent\n", pr_err("%s metadata is platform independent\n",
meta->name ? : "[no name]"); meta->name ? : "[no name]");
} else } else

40
Grow.c
View File

@ -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, static int reshape_array(char *container, int fd, char *devname,
struct supertype *st, struct mdinfo *info, struct supertype *st, struct mdinfo *info,
int force, struct mddev_dev *devlist, 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); int restart, int freeze_reshape);
static int reshape_container(char *container, char *devname, static int reshape_container(char *container, char *devname,
int mdfd, int mdfd,
@ -1426,9 +1426,9 @@ static int reshape_container(char *container, char *devname,
struct mdinfo *info, struct mdinfo *info,
int force, int force,
char *backup_file, 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, long long size,
int level, char *layout_str, int chunksize, int raid_disks, int level, char *layout_str, int chunksize, int raid_disks,
struct mddev_dev *devlist, struct mddev_dev *devlist,
@ -1621,7 +1621,7 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file,
orig_size = array.size; orig_size = array.size;
if (reshape_super(st, size, UnSet, UnSet, 0, 0, UnSet, NULL, if (reshape_super(st, size, UnSet, UnSet, 0, 0, UnSet, NULL,
devname, APPLY_METADATA_CHANGES, !quiet)) { devname, APPLY_METADATA_CHANGES, verbose > 0)) {
rv = 1; rv = 1;
goto release; goto release;
} }
@ -1755,7 +1755,7 @@ size_change_error:
if (reshape_super(st, orig_size, UnSet, UnSet, 0, 0, if (reshape_super(st, orig_size, UnSet, UnSet, 0, 0,
UnSet, NULL, devname, UnSet, NULL, devname,
ROLLBACK_METADATA_CHANGES, ROLLBACK_METADATA_CHANGES,
!quiet) == 0) verbose) == 0)
sync_metadata(st); sync_metadata(st);
pr_err("Cannot set device size for %s: %s\n", pr_err("Cannot set device size for %s: %s\n",
devname, strerror(err)); devname, strerror(err));
@ -1777,7 +1777,7 @@ size_change_error:
size = get_component_size(fd)/2; size = get_component_size(fd)/2;
if (size == 0) if (size == 0)
size = array.size; size = array.size;
if (!quiet) { if (verbose >= 0) {
if (size == orig_size) if (size == orig_size)
pr_err("component size of %s " pr_err("component size of %s "
"unchanged at %lluK\n", "unchanged at %lluK\n",
@ -1800,7 +1800,7 @@ size_change_error:
(chunksize == 0 || chunksize == array.chunk_size) && (chunksize == 0 || chunksize == array.chunk_size) &&
(raid_disks == 0 || raid_disks == array.raid_disks)) { (raid_disks == 0 || raid_disks == array.raid_disks)) {
/* Nothing more to do */ /* Nothing more to do */
if (!changed && !quiet) if (!changed && verbose >= 0)
pr_err("%s: no change requested\n", pr_err("%s: no change requested\n",
devname); devname);
goto release; goto release;
@ -1955,7 +1955,7 @@ size_change_error:
if (ioctl(fd, SET_ARRAY_INFO, &array) != 0) { if (ioctl(fd, SET_ARRAY_INFO, &array) != 0) {
pr_err("failed to set new layout\n"); pr_err("failed to set new layout\n");
rv = 1; rv = 1;
} else if (!quiet) } else if (verbose >= 0)
printf("layout for %s set to %d\n", printf("layout for %s set to %d\n",
devname, array.layout); devname, array.layout);
} }
@ -1969,7 +1969,7 @@ size_change_error:
* performed at the level of the container * performed at the level of the container
*/ */
rv = reshape_container(container, devname, -1, st, &info, rv = reshape_container(container, devname, -1, st, &info,
force, backup_file, quiet, 0, 0); force, backup_file, verbose, 0, 0);
frozen = 0; frozen = 0;
} else { } else {
/* get spare devices from external metadata /* get spare devices from external metadata
@ -1992,13 +1992,13 @@ size_change_error:
info.new_layout, info.new_chunk, info.new_layout, info.new_chunk,
info.array.raid_disks, info.delta_disks, info.array.raid_disks, info.delta_disks,
backup_file, devname, APPLY_METADATA_CHANGES, backup_file, devname, APPLY_METADATA_CHANGES,
quiet)) { verbose)) {
rv = 1; rv = 1;
goto release; goto release;
} }
sync_metadata(st); sync_metadata(st);
rv = reshape_array(container, fd, devname, st, &info, force, 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; frozen = 0;
} }
release: 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, static int reshape_array(char *container, int fd, char *devname,
struct supertype *st, struct mdinfo *info, struct supertype *st, struct mdinfo *info,
int force, struct mddev_dev *devlist, 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) int restart, int freeze_reshape)
{ {
struct reshape reshape; struct reshape reshape;
@ -2208,7 +2208,7 @@ static int reshape_array(char *container, int fd, char *devname,
" before level can be changed\n"); " before level can be changed\n");
goto release; goto release;
} }
if (!quiet) if (verbose >= 0)
pr_err("level of %s changed to %s\n", pr_err("level of %s changed to %s\n",
devname, c); devname, c);
orig_level = array.level; 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. * level and frozen, we can safely add them.
*/ */
if (devlist) if (devlist)
Manage_subdevs(devname, fd, devlist, !quiet, Manage_subdevs(devname, fd, devlist, verbose,
0,NULL, 0); 0,NULL, 0);
if (reshape.backup_blocks == 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) { if (ioctl(fd, SET_ARRAY_INFO, &array) != 0) {
pr_err("failed to set new layout\n"); pr_err("failed to set new layout\n");
goto release; goto release;
} else if (!quiet) } else if (verbose >= 0)
printf("layout for %s set to %d\n", printf("layout for %s set to %d\n",
devname, array.layout); 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) { if (ioctl(fd, SET_ARRAY_INFO, &array) != 0) {
pr_err("failed to set raid disks\n"); pr_err("failed to set raid disks\n");
goto release; goto release;
} else if (!quiet) { } else if (verbose >= 0) {
printf("raid_disks for %s set to %d\n", printf("raid_disks for %s set to %d\n",
devname, array.raid_disks); devname, array.raid_disks);
} }
@ -2308,7 +2308,7 @@ static int reshape_array(char *container, int fd, char *devname,
"chunk_size", info->new_chunk) != 0) { "chunk_size", info->new_chunk) != 0) {
pr_err("failed to set chunk size\n"); pr_err("failed to set chunk size\n");
goto release; goto release;
} else if (!quiet) } else if (verbose >= 0)
printf("chunk size for %s set to %d\n", printf("chunk size for %s set to %d\n",
devname, array.chunk_size); devname, array.chunk_size);
} }
@ -2666,7 +2666,7 @@ int reshape_container(char *container, char *devname,
struct mdinfo *info, struct mdinfo *info,
int force, int force,
char *backup_file, char *backup_file,
int quiet, int restart, int freeze_reshape) int verbose, int restart, int freeze_reshape)
{ {
struct mdinfo *cc = NULL; struct mdinfo *cc = NULL;
int rv = restart; int rv = restart;
@ -2680,7 +2680,7 @@ int reshape_container(char *container, char *devname,
info->new_layout, info->new_chunk, info->new_layout, info->new_chunk,
info->array.raid_disks, info->delta_disks, info->array.raid_disks, info->delta_disks,
backup_file, devname, APPLY_METADATA_CHANGES, backup_file, devname, APPLY_METADATA_CHANGES,
quiet)) { verbose)) {
unfreeze(st); unfreeze(st);
return 1; return 1;
} }
@ -2792,7 +2792,7 @@ int reshape_container(char *container, char *devname,
rv = reshape_array(container, fd, adev, st, rv = reshape_array(container, fd, adev, st,
content, force, NULL, content, force, NULL,
backup_file, quiet, 1, restart, backup_file, verbose, 1, restart,
freeze_reshape); freeze_reshape);
close(fd); close(fd);

22
Kill.c
View File

@ -29,7 +29,7 @@
#include "md_u.h" #include "md_u.h"
#include "md_p.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 * 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; noexcl = 1;
fd = open(dev, O_RDWR|(noexcl ? 0 : O_EXCL)); fd = open(dev, O_RDWR|(noexcl ? 0 : O_EXCL));
if (fd < 0) { if (fd < 0) {
if (!quiet) if (verbose >= 0)
pr_err("Couldn't open %s for write - not zeroing\n", pr_err("Couldn't open %s for write - not zeroing\n",
dev); dev);
return 2; return 2;
@ -54,7 +54,7 @@ int Kill(char *dev, struct supertype *st, int force, int quiet, int noexcl)
if (st == NULL) if (st == NULL)
st = guess_super(fd); st = guess_super(fd);
if (st == NULL || st->ss->init_super == NULL) { if (st == NULL || st->ss->init_super == NULL) {
if (!quiet) if (verbose >= 0)
pr_err("Unrecognised md component device - %s\n", dev); pr_err("Unrecognised md component device - %s\n", dev);
close(fd); close(fd);
return 2; 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->free_super(st);
st->ss->init_super(st, NULL, 0, "", NULL, NULL); st->ss->init_super(st, NULL, 0, "", NULL, NULL);
if (st->ss->store_super(st, fd)) { if (st->ss->store_super(st, fd)) {
if (!quiet) if (verbose >= 0)
pr_err("Could not zero superblock on %s\n", pr_err("Could not zero superblock on %s\n",
dev); dev);
rv = 1; rv = 1;
} else if (rv) { } else if (rv) {
if (!quiet) if (verbose >= 0)
pr_err("superblock zeroed anyway\n"); pr_err("superblock zeroed anyway\n");
rv = 0; rv = 0;
} }
@ -79,7 +79,7 @@ int Kill(char *dev, struct supertype *st, int force, int quiet, int noexcl)
return rv; 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 /* Delete a subarray out of a container, the subarry must be
* inactive. The subarray string must be a subarray index * 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)); memset(st, 0, sizeof(*st));
fd = open_subarray(dev, subarray, st, quiet); fd = open_subarray(dev, subarray, st, verbose < 0);
if (fd < 0) if (fd < 0)
return 2; return 2;
if (!st->ss->kill_subarray) { if (!st->ss->kill_subarray) {
if (!quiet) if (verbose >= 0)
pr_err("Operation not supported for %s metadata\n", pr_err("Operation not supported for %s metadata\n",
st->ss->name); st->ss->name);
goto free_super; goto free_super;
} }
if (is_subarray_active(subarray, st->devname)) { if (is_subarray_active(subarray, st->devname)) {
if (!quiet) if (verbose >= 0)
pr_err("Subarray-%s still active, aborting\n", pr_err("Subarray-%s still active, aborting\n",
subarray); subarray);
goto free_super; 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 */ /* ok we've found our victim, drop the axe */
rv = st->ss->kill_subarray(st); rv = st->ss->kill_subarray(st);
if (rv) { if (rv) {
if (!quiet) if (verbose >= 0)
pr_err("Failed to delete subarray-%s from %s\n", pr_err("Failed to delete subarray-%s from %s\n",
subarray, dev); subarray, dev);
goto free_super; goto free_super;
@ -131,7 +131,7 @@ int Kill_subarray(char *dev, char *subarray, int quiet)
else else
st->ss->sync_metadata(st); st->ss->sync_metadata(st);
if (!quiet) if (verbose >= 0)
pr_err("Deleted subarray-%s from %s, UUIDs may have changed\n", pr_err("Deleted subarray-%s from %s, UUIDs may have changed\n",
subarray, dev); subarray, dev);

View File

@ -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 /* Run or stop the array. array must already be configured
* required >= 0.90.0 * 'Run' requires >= 0.90.0
* Only print failure messages if quiet == 0; * 'will_retry' is only relevant for 'stop', and means
* quiet > 0 means really be quiet * that error messages are not wanted.
* quiet < 0 means we will try again if it fails.
*/ */
mdu_param_t param; /* unused */ mdu_param_t param; /* unused */
int rv = 0; int rv = 0;
if (will_retry && verbose == 0)
verbose = -1;
if (runstop == -1 && md_get_version(fd) < 9000) { if (runstop == -1 && md_get_version(fd) < 9000) {
if (ioctl(fd, STOP_MD, 0)) { if (ioctl(fd, STOP_MD, 0)) {
pr_err("stopping device %s " 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"); pr_err("need md driver version 0.90.0 or later\n");
return 1; 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 (runstop>0) {
if (ioctl(fd, RUN_ARRAY, &param)) { if (ioctl(fd, RUN_ARRAY, &param)) {
pr_err("failed to run array %s: %s\n", if (verbose >= 0)
devname, strerror(errno)); pr_err("failed to run array %s: %s\n",
devname, strerror(errno));
return 1; return 1;
} }
if (quiet <= 0) if (verbose >= 0)
pr_err("started %s\n", devname); pr_err("started %s\n", devname);
} else if (runstop < 0){ } else if (runstop < 0){
struct map_ent *map = NULL; 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 || fd2devnum(fd) != devnum) {
if (fd >= 0) if (fd >= 0)
close(fd); close(fd);
pr_err("Cannot get exclusive access to %s:" if (verbose >= 0)
"Perhaps a running " pr_err("Cannot get exclusive access to %s:"
"process, mounted filesystem " "Perhaps a running "
"or active volume group?\n", "process, mounted filesystem "
devname); "or active volume group?\n",
devname);
return 1; return 1;
} }
mdi = sysfs_read(fd, -1, GET_LEVEL|GET_VERSION); 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); usleep(200000);
count--; count--;
} }
if (err && !quiet) { if (err) {
pr_err("failed to stop array %s: %s\n", if (verbose >= 0)
devname, strerror(errno)); pr_err("failed to stop array %s: %s\n",
devname, strerror(errno));
rv = 1; rv = 1;
goto out; goto out;
} }
@ -268,9 +268,10 @@ int Manage_runstop(char *devname, int fd, int runstop, int quiet)
fd = open_dev_excl(devnum); fd = open_dev_excl(devnum);
if (fd < 0) { if (fd < 0) {
pr_err("failed to completely stop %s" if (verbose >= 0)
": Device is busy\n", pr_err("failed to completely stop %s"
devname); ": Device is busy\n",
devname);
rv = 1; rv = 1;
goto out; goto out;
} }
@ -294,7 +295,7 @@ int Manage_runstop(char *devname, int fd, int runstop, int quiet)
strncmp(m->metadata_version, "external:", 9)==0 && strncmp(m->metadata_version, "external:", 9)==0 &&
is_subarray(m->metadata_version+9) && is_subarray(m->metadata_version+9) &&
devname2devnum(m->metadata_version+10) == devnum) { devname2devnum(m->metadata_version+10) == devnum) {
if (!quiet) if (verbose >= 0)
pr_err("Cannot stop container %s: " pr_err("Cannot stop container %s: "
"member %s still active\n", "member %s still active\n",
devname, m->dev); devname, m->dev);
@ -316,7 +317,7 @@ int Manage_runstop(char *devname, int fd, int runstop, int quiet)
count --; count --;
} }
if (fd >= 0 && err) { if (fd >= 0 && err) {
if (quiet == 0) { if (verbose >= 0) {
pr_err("failed to stop array %s: %s\n", pr_err("failed to stop array %s: %s\n",
devname, strerror(errno)); devname, strerror(errno));
if (errno == EBUSY) 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); pr_err("stopped %s\n", devname);
map_lock(&map); map_lock(&map);
map_remove(&map, devnum); map_remove(&map, devnum);
@ -1204,19 +1205,19 @@ int autodetect(void)
return rv; 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; struct supertype supertype, *st = &supertype;
int fd, rv = 2; int fd, rv = 2;
memset(st, 0, sizeof(*st)); memset(st, 0, sizeof(*st));
fd = open_subarray(dev, subarray, st, quiet); fd = open_subarray(dev, subarray, st, verbose < 0);
if (fd < 0) if (fd < 0)
return 2; return 2;
if (!st->ss->update_subarray) { if (!st->ss->update_subarray) {
if (!quiet) if (verbose >= 0)
pr_err("Operation not supported for %s metadata\n", pr_err("Operation not supported for %s metadata\n",
st->ss->name); st->ss->name);
goto free_super; 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); rv = st->ss->update_subarray(st, subarray, update, ident);
if (rv) { if (rv) {
if (!quiet) if (verbose >= 0)
pr_err("Failed to update %s of subarray-%s in %s\n", pr_err("Failed to update %s of subarray-%s in %s\n",
update, subarray, dev); update, subarray, dev);
} else if (st->update_tail) } else if (st->update_tail)
@ -1236,7 +1237,7 @@ int Update_subarray(char *dev, char *subarray, char *update, struct mddev_ident
else else
st->ss->sync_metadata(st); 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", pr_err("Updated subarray-%s name from %s, UUIDs may have changed\n",
subarray, dev); subarray, dev);

50
mdadm.c
View File

@ -38,12 +38,12 @@ static int scan_assemble(int autof, struct supertype *ss,
int freeze_reshape); int freeze_reshape);
static int misc_scan(char devmode, int verbose, int export, int test, static int misc_scan(char devmode, int verbose, int export, int test,
char *homehost, char *prefer); char *homehost, char *prefer);
static int stop_scan(int quiet); static int stop_scan(int verbose);
static int misc_list(struct mddev_dev *devlist, static int misc_list(struct mddev_dev *devlist,
int brief, int verbose, int export, int test, int brief, int verbose, int export, int test,
char *homehost, char *prefer, char *subarray, char *homehost, char *prefer, char *subarray,
char *update, struct mddev_ident *ident, char *update, struct mddev_ident *ident,
struct supertype *ss, int force, int quiet); struct supertype *ss, int force);
int main(int argc, char *argv[]) int main(int argc, char *argv[])
@ -1239,7 +1239,7 @@ int main(int argc, char *argv[])
if (!rv && c.readonly < 0) if (!rv && c.readonly < 0)
rv = Manage_ro(devlist->devname, mdfd, c.readonly); rv = Manage_ro(devlist->devname, mdfd, c.readonly);
if (!rv && c.runstop) 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; break;
case ASSEMBLE: case ASSEMBLE:
if (devs_found == 1 && ident.uuid_set == 0 && 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); pr_err("No devices listed in %s\n", configfile?configfile:DefaultConfFile);
exit(1); exit(1);
} }
if (c.brief && c.verbose) if (c.brief && c.verbose > 0)
c.brief = 2; 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.export, c.scan,
c.SparcAdjust, ss, c.homehost); c.SparcAdjust, ss, c.homehost);
} else if (devmode == DetailPlatform) { } 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) { } else if (devlist == NULL) {
if (devmode == 'S' && c.scan) 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) 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); c.test, c.homehost, c.prefer);
else if (devmode == UdevRules) else if (devmode == UdevRules)
rv = Write_rules(udev_filename); rv = Write_rules(udev_filename);
@ -1391,10 +1391,10 @@ int main(int argc, char *argv[])
exit(2); exit(2);
} }
} else } 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, c.homehost, c.prefer, c.subarray, c.update,
&ident, &ident,
ss, c.force, c.quiet); ss, c.force);
break; break;
case MONITOR: case MONITOR:
if (!devlist && !c.scan) { if (!devlist && !c.scan) {
@ -1482,10 +1482,10 @@ int main(int argc, char *argv[])
} else if (grow_continue) } else if (grow_continue)
rv = Grow_continue_command(devlist->devname, rv = Grow_continue_command(devlist->devname,
mdfd, c.backup_file, mdfd, c.backup_file,
c.verbose); c.verbose-c.quiet);
else if (size >= 0 || raiddisks != 0 || layout_str != NULL else if (size >= 0 || raiddisks != 0 || layout_str != NULL
|| chunk != 0 || level != UnSet) { || 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, size, level, layout_str, chunk, raiddisks,
devlist->next, devlist->next,
assume_clean, c.force); assume_clean, c.force);
@ -1505,7 +1505,7 @@ int main(int argc, char *argv[])
pr_err("--incremental --scan --fail not supported.\n"); pr_err("--incremental --scan --fail not supported.\n");
break; break;
} }
rv = IncrementalScan(c.verbose); rv = IncrementalScan(c.verbose-c.quiet);
} }
if (!devlist) { if (!devlist) {
if (!rebuild_map && !c.scan) { if (!rebuild_map && !c.scan) {
@ -1684,7 +1684,7 @@ static int misc_scan(char devmode, int verbose, int export, int test,
return rv; return rv;
} }
static int stop_scan(int quiet) static int stop_scan(int verbose)
{ {
/* apply --stop to all devices in /proc/mdstat */ /* apply --stop to all devices in /proc/mdstat */
/* Due to possible stacking of devices, repeat until /* Due to possible stacking of devices, repeat until
@ -1710,7 +1710,7 @@ static int stop_scan(int quiet)
} }
mdfd = open_mddev(name, 1); mdfd = open_mddev(name, 1);
if (mdfd >= 0) { if (mdfd >= 0) {
if (Manage_runstop(name, mdfd, -1, quiet?1:last?0:-1)) if (Manage_runstop(name, mdfd, -1, verbose, !last))
err = 1; err = 1;
else else
progress = 1; progress = 1;
@ -1730,7 +1730,7 @@ static int misc_list(struct mddev_dev *devlist,
int brief, int verbose, int export, int test, int brief, int verbose, int export, int test,
char *homehost, char *prefer, char *subarray, char *homehost, char *prefer, char *subarray,
char *update, struct mddev_ident *ident, char *update, struct mddev_ident *ident,
struct supertype *ss, int force, int quiet) struct supertype *ss, int force)
{ {
struct mddev_dev *dv; struct mddev_dev *dv;
int rv = 0; int rv = 0;
@ -1746,12 +1746,12 @@ static int misc_list(struct mddev_dev *devlist,
continue; continue;
case KillOpt: /* Zero superblock */ case KillOpt: /* Zero superblock */
if (ss) if (ss)
rv |= Kill(dv->devname, ss, force, quiet,0); rv |= Kill(dv->devname, ss, force, verbose,0);
else { else {
int q = quiet; int v = verbose;
do { do {
rv |= Kill(dv->devname, NULL, force, q, 0); rv |= Kill(dv->devname, NULL, force, v, 0);
q = 1; v = -1;
} while (rv == 0); } while (rv == 0);
rv &= ~2; rv &= ~2;
} }
@ -1764,9 +1764,9 @@ static int misc_list(struct mddev_dev *devlist,
case WaitOpt: case WaitOpt:
rv |= Wait(dv->devname); continue; rv |= Wait(dv->devname); continue;
case Waitclean: case Waitclean:
rv |= WaitClean(dv->devname, -1, verbose-quiet); continue; rv |= WaitClean(dv->devname, -1, verbose); continue;
case KillSubarray: case KillSubarray:
rv |= Kill_subarray(dv->devname, subarray, quiet); rv |= Kill_subarray(dv->devname, subarray, verbose);
continue; continue;
case UpdateSubarray: case UpdateSubarray:
if (update == NULL) { if (update == NULL) {
@ -1775,16 +1775,16 @@ static int misc_list(struct mddev_dev *devlist,
continue; continue;
} }
rv |= Update_subarray(dv->devname, subarray, rv |= Update_subarray(dv->devname, subarray,
update, ident, quiet); update, ident, verbose);
continue; continue;
} }
mdfd = open_mddev(dv->devname, 1); mdfd = open_mddev(dv->devname, 1);
if (mdfd>=0) { if (mdfd>=0) {
switch(dv->disposition) { switch(dv->disposition) {
case 'R': case 'R':
rv |= Manage_runstop(dv->devname, mdfd, 1, quiet); break; rv |= Manage_runstop(dv->devname, mdfd, 1, verbose, 0); break;
case 'S': case 'S':
rv |= Manage_runstop(dv->devname, mdfd, -1, quiet); break; rv |= Manage_runstop(dv->devname, mdfd, -1, verbose, 0); break;
case 'o': case 'o':
rv |= Manage_ro(dv->devname, mdfd, 1); break; rv |= Manage_ro(dv->devname, mdfd, 1); break;
case 'w': case 'w':

View File

@ -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_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_resize(char *devname, int fd, long long size, int raid_disks);
extern int Manage_subdevs(char *devname, int fd, extern int Manage_subdevs(char *devname, int fd,
struct mddev_dev *devlist, int verbose, int test, 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 dosyslog, int test, char *pidfile, int increments,
int share, char *prefer); int share, char *prefer);
extern int Kill(char *dev, struct supertype *st, int force, int quiet, int noexcl); extern int Kill(char *dev, struct supertype *st, int force, int verbose, int noexcl);
extern int Kill_subarray(char *dev, char *subarray, int quiet); 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 Update_subarray(char *dev, char *subarray, char *update, struct mddev_ident *ident, int quiet);
extern int Wait(char *dev); extern int Wait(char *dev);
extern int WaitClean(char *dev, int sock, int verbose); extern int WaitClean(char *dev, int sock, int verbose);

View File

@ -2477,7 +2477,7 @@ static int write_init_super_ddf(struct supertype *st)
} else { } else {
struct dl *d; struct dl *d;
for (d = ddf->dlist; d; d=d->next) 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); return __write_init_super_ddf(st);
} }
} }

View 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; unsigned long port_mask = (1 << port_count) - 1;
if (port_count > (int)sizeof(port_mask) * 8) { if (port_count > (int)sizeof(port_mask) * 8) {
if (verbose) if (verbose > 0)
pr_err("port_count %d out of range\n", port_count); pr_err("port_count %d out of range\n", port_count);
return 2; 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 */ /* retrieve the scsi device type */
if (asprintf(&device, "/sys/dev/block/%d:%d/device/xxxxxxx", major, minor) < 0) { 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"); pr_err("failed to allocate 'device'\n");
err = 2; err = 2;
break; break;
} }
sprintf(device, "/sys/dev/block/%d:%d/device/type", major, minor); sprintf(device, "/sys/dev/block/%d:%d/device/type", major, minor);
if (load_sys(device, buf) != 0) { if (load_sys(device, buf) != 0) {
if (verbose) if (verbose > 0)
pr_err("failed to read device type for %s\n", pr_err("failed to read device type for %s\n",
path); path);
err = 2; 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 */ /* chop device path to 'host%d' and calculate the port number */
c = strchr(&path[hba_len], '/'); c = strchr(&path[hba_len], '/');
if (!c) { if (!c) {
if (verbose) if (verbose > 0)
pr_err("%s - invalid path name\n", path + hba_len); pr_err("%s - invalid path name\n", path + hba_len);
err = 2; err = 2;
break; 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) if (sscanf(&path[hba_len], "host%d", &port) == 1)
port -= host_base; port -= host_base;
else { else {
if (verbose) { if (verbose > 0) {
*c = '/'; /* repair the full string */ *c = '/'; /* repair the full string */
pr_err("failed to determine port number for %s\n", pr_err("failed to determine port number for %s\n",
path); path);
@ -1836,12 +1836,12 @@ static int detail_platform_imsm(int verbose, int enumerate_only)
list = find_intel_devices(); list = find_intel_devices();
if (!list) { if (!list) {
if (verbose) if (verbose > 0)
pr_err("no active Intel(R) RAID " pr_err("no active Intel(R) RAID "
"controller found.\n"); "controller found.\n");
free_sys_dev(&list); free_sys_dev(&list);
return 2; return 2;
} else if (verbose) } else if (verbose > 0)
print_found_intel_controllers(list); print_found_intel_controllers(list);
for (hba = list; hba; hba = hba->next) { 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) { if (hba->type == SYS_DEV_SATA) {
host_base = ahci_get_port_count(hba->path, &port_count); host_base = ahci_get_port_count(hba->path, &port_count);
if (ahci_enumerate_ports(hba->path, port_count, host_base, verbose)) { if (ahci_enumerate_ports(hba->path, port_count, host_base, verbose)) {
if (verbose) if (verbose > 0)
pr_err("failed to enumerate " pr_err("failed to enumerate "
"ports on SATA controller at %s.", hba->pci_id); "ports on SATA controller at %s.", hba->pci_id);
result |= 2; result |= 2;
@ -5175,7 +5175,7 @@ static int write_init_super_imsm(struct supertype *st)
} else { } else {
struct dl *d; struct dl *d;
for (d = super->disks; d; d = d->next) 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); 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); fd = open(dev, O_RDONLY|O_EXCL, 0);
if (fd < 0) { if (fd < 0) {
if (verbose) if (verbose > 0)
pr_err("imsm: Cannot open %s: %s\n", pr_err("imsm: Cannot open %s: %s\n",
dev, strerror(errno)); dev, strerror(errno));
return 0; 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. * note that there is no fd for the disks in array.
*/ */
super = alloc_super(); 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 (rv != 0) {
#if DEBUG #if DEBUG
char str[256]; char str[256];

View File

@ -768,7 +768,7 @@ static int write_init_super0(struct supertype *st)
continue; continue;
if (di->fd == -1) if (di->fd == -1)
continue; 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); sb->disks[di->disk.number].state &= ~(1<<MD_DISK_FAULTY);

View File

@ -1101,7 +1101,7 @@ static int write_init_super1(struct supertype *st)
if (di->fd < 0) if (di->fd < 0)
continue; 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); sb->dev_number = __cpu_to_le32(di->disk.number);