diff options
author | NeilBrown <neilb@suse.de> | 2012-04-18 11:00:07 +1000 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2012-04-18 11:00:07 +1000 |
commit | c2ecf5f61aca2d73b7d5a6cb3a26973916d5c0d1 (patch) | |
tree | 747e82e252a746c42c01879ec41587ae6c336935 /mdadm.c | |
parent | 480f3566411675ec41f18e5f6e15429f891e144c (diff) |
Add --prefer option for --detail and --monitor
Both --detail and --monitor can report the names of member
devices on an array, and do so by searching /dev and finding
the shortest name that matches.
If
--prefer=foo
is given, they will instead prefer a name that contain /foo/.
So
mdadm --detail /dev/md0 --prefer=by-path
will list the component devices via their /dev/disk/by-path/xxx
names.
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'mdadm.c')
-rw-r--r-- | mdadm.c | 15 |
1 files changed, 12 insertions, 3 deletions
@@ -73,6 +73,7 @@ int main(int argc, char *argv[]) int test = 0; int export = 0; int assume_clean = 0; + char *prefer = NULL; char *symlinks = NULL; int grow_continue = 0; /* autof indicates whether and how to create device node. @@ -184,6 +185,13 @@ int main(int argc, char *argv[]) __offroot = 1; continue; + case Prefer: + if (prefer) + free(prefer); + if (asprintf(&prefer, "/%s/", optarg) <= 0) + prefer = NULL; + continue; + case ':': case '?': fputs(Usage, stderr); @@ -1498,7 +1506,7 @@ int main(int argc, char *argv[]) if (devmode == 'D') rv |= Detail(name, v, export, test, - homehost); + homehost, prefer); else rv |= WaitClean(name, -1, v); put_md_name(name); @@ -1552,7 +1560,7 @@ int main(int argc, char *argv[]) case 'D': rv |= Detail(dv->devname, brief?1+verbose:0, - export, test, homehost); + export, test, homehost, prefer); continue; case 'K': /* Zero superblock */ if (ss) @@ -1626,7 +1634,8 @@ int main(int argc, char *argv[]) } rv= Monitor(devlist, mailaddr, program, delay?delay:60, daemonise, scan, oneshot, - dosyslog, test, pidfile, increments, spare_sharing); + dosyslog, test, pidfile, increments, + spare_sharing, prefer); break; case GROW: |