summaryrefslogtreecommitdiff
path: root/Examine.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2012-07-09 17:20:00 +1000
committerNeilBrown <neilb@suse.de>2012-07-09 17:20:00 +1000
commiteec3f887856664e224cdd97d3e4d609766f26a8a (patch)
treeb52c94672672a4c82e7fe52cf5e241279a0ee944 /Examine.c
parent265460ababa169a2a0926b5fba10724ba117e318 (diff)
change Examine to take a struct context
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'Examine.c')
-rw-r--r--Examine.c37
1 files changed, 18 insertions, 19 deletions
diff --git a/Examine.c b/Examine.c
index 353ad1cb..b939843f 100644
--- a/Examine.c
+++ b/Examine.c
@@ -30,10 +30,9 @@
#endif
#include "md_u.h"
#include "md_p.h"
-int Examine(struct mddev_dev *devlist, int brief, int verbose,
- int export, int scan,
- int SparcAdjust, struct supertype *forcest,
- char *homehost)
+int Examine(struct mddev_dev *devlist,
+ struct context *c,
+ struct supertype *forcest)
{
/* Read the raid superblock from a device and
@@ -69,7 +68,7 @@ int Examine(struct mddev_dev *devlist, int brief, int verbose,
fd = dev_open(devlist->devname, O_RDONLY);
if (fd < 0) {
- if (!scan) {
+ if (!c->scan) {
pr_err("cannot open %s: %s\n",
devlist->devname, strerror(errno));
rv = 1;
@@ -91,18 +90,18 @@ int Examine(struct mddev_dev *devlist, int brief, int verbose,
st->ignore_hw_compat = 1;
if (!container)
err = st->ss->load_super(st, fd,
- (brief||scan) ? NULL
+ (c->brief||c->scan) ? NULL
:devlist->devname);
if (err && st->ss->load_container) {
err = st->ss->load_container(st, fd,
- (brief||scan) ? NULL
+ (c->brief||c->scan) ? NULL
:devlist->devname);
if (!err)
have_container = 1;
}
st->ignore_hw_compat = 0;
} else {
- if (!brief) {
+ if (!c->brief) {
pr_err("No md superblock detected on %s.\n", devlist->devname);
rv = 1;
}
@@ -113,16 +112,16 @@ int Examine(struct mddev_dev *devlist, int brief, int verbose,
if (err)
continue;
- if (SparcAdjust)
+ if (c->SparcAdjust)
st->ss->update_super(st, NULL, "sparc2.2",
devlist->devname, 0, 0, NULL);
/* Ok, its good enough to try, though the checksum could be wrong */
- if (brief && st->ss->brief_examine_super == NULL) {
- if (!scan)
+ if (c->brief && st->ss->brief_examine_super == NULL) {
+ if (!c->scan)
pr_err("No brief listing for %s on %s\n",
st->ss->name, devlist->devname);
- } else if (brief) {
+ } else if (c->brief) {
struct array *ap;
char *d;
for (ap=arrays; ap; ap=ap->next) {
@@ -145,27 +144,27 @@ int Examine(struct mddev_dev *devlist, int brief, int verbose,
ap->spares++;
d = dl_strdup(devlist->devname);
dl_add(ap->devs, d);
- } else if (export) {
+ } else if (c->export) {
if (st->ss->export_examine_super)
st->ss->export_examine_super(st);
st->ss->free_super(st);
} else {
printf("%s:\n",devlist->devname);
- st->ss->examine_super(st, homehost);
+ st->ss->examine_super(st, c->homehost);
st->ss->free_super(st);
}
}
- if (brief) {
+ if (c->brief) {
struct array *ap;
for (ap=arrays; ap; ap=ap->next) {
char sep='=';
char *d;
int newline = 0;
- ap->st->ss->brief_examine_super(ap->st, verbose > 0);
+ ap->st->ss->brief_examine_super(ap->st, c->verbose > 0);
if (ap->spares)
newline += printf(" spares=%d", ap->spares);
- if (verbose > 0) {
+ if (c->verbose > 0) {
newline += printf(" devices");
for (d=dl_next(ap->devs); d!= ap->devs; d=dl_next(d)) {
printf("%c%s", sep, d);
@@ -175,11 +174,11 @@ int Examine(struct mddev_dev *devlist, int brief, int verbose,
if (ap->st->ss->brief_examine_subarrays) {
if (newline)
printf("\n");
- ap->st->ss->brief_examine_subarrays(ap->st, verbose);
+ ap->st->ss->brief_examine_subarrays(ap->st, c->verbose);
}
ap->st->ss->free_super(ap->st);
/* FIXME free ap */
- if (ap->spares || verbose > 0)
+ if (ap->spares || c->verbose > 0)
printf("\n");
}
}