summaryrefslogtreecommitdiff
path: root/Detail.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2012-04-18 11:00:07 +1000
committerNeilBrown <neilb@suse.de>2012-04-18 11:00:07 +1000
commitc2ecf5f61aca2d73b7d5a6cb3a26973916d5c0d1 (patch)
tree747e82e252a746c42c01879ec41587ae6c336935 /Detail.c
parent480f3566411675ec41f18e5f6e15429f891e144c (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 'Detail.c')
-rw-r--r--Detail.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/Detail.c b/Detail.c
index 1d7e3a16..ae15846d 100644
--- a/Detail.c
+++ b/Detail.c
@@ -27,7 +27,7 @@
#include "md_u.h"
#include <dirent.h>
-int Detail(char *dev, int brief, int export, int test, char *homehost)
+int Detail(char *dev, int brief, int export, int test, char *homehost, char *prefer)
{
/*
* Print out details for an md array by using
@@ -105,7 +105,7 @@ int Detail(char *dev, int brief, int export, int test, char *homehost)
int dn = st->container_dev;
member = subarray;
- container = map_dev(dev2major(dn), dev2minor(dn), 1);
+ container = map_dev_preferred(dev2major(dn), dev2minor(dn), 1, prefer);
}
/* try to load a superblock */
@@ -491,8 +491,9 @@ This is pretty boring
vbuf[10+nlen] != '/')
continue;
dn = devname2devnum(de->d_name);
- printf(" %s", map_dev(dev2major(dn),
- dev2minor(dn), 1));
+ printf(" %s", map_dev_preferred(
+ dev2major(dn),
+ dev2minor(dn), 1, prefer));
}
if (dir)
closedir(dir);
@@ -558,7 +559,7 @@ This is pretty boring
if (test && d < array.raid_disks
&& !(disk.state & (1<<MD_DISK_SYNC)))
rv |= 1;
- if ((dv=map_dev(disk.major, disk.minor, 0))) {
+ if ((dv=map_dev_preferred(disk.major, disk.minor, 0, prefer))) {
if (brief) {
if (devices) {
devices = realloc(devices,