]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Detail: use meaningful names with --scan.
authorNeilBrown <neilb@suse.de>
Mon, 6 Apr 2009 05:54:51 +0000 (15:54 +1000)
committerNeilBrown <neilb@suse.de>
Mon, 6 Apr 2009 05:54:51 +0000 (15:54 +1000)
When reporting "--detail --scan", use names like /dev/md/foo where
available rather than /dev/md/127

This is particularly needed for containers where the member arrays
will report "container=/dev/md/foo" and we want the container to have
the same name.

Signed-off-by: NeilBrown <neilb@suse.de>
mdadm.c

diff --git a/mdadm.c b/mdadm.c
index 1fef4b998524cfac4382644624e19683be6cc389..4402eba846762325cc206c330af6e144d257c5ca 100644 (file)
--- a/mdadm.c
+++ b/mdadm.c
@@ -132,7 +132,7 @@ int main(int argc, char *argv[])
                                shortopt, long_options,
                                &option_index)) != -1) {
                int newmode = mode;
-               /* firstly, some mode-independant options */
+               /* firstly, some mode-independent options */
                switch(opt) {
                case 'h':
                        if (option_index > 0 &&
@@ -1231,10 +1231,17 @@ int main(int argc, char *argv[])
                                         */
                                        struct mdstat_ent *ms = mdstat_read(0, 1);
                                        struct mdstat_ent *e;
+                                       struct map_ent *map = NULL;
                                        int v = verbose>1?0:verbose+1;
 
                                        for (e=ms ; e ; e=e->next) {
-                                               char *name = get_md_name(e->devnum);
+                                               char *name;
+                                               struct map_ent *me;
+                                               me = map_by_devnum(&map, e->devnum);
+                                               if (me && me->path)
+                                                       name = me->path;
+                                               else
+                                                       name = get_md_name(e->devnum);
 
                                                if (!name) {
                                                        fprintf(stderr, Name ": cannot find device file for %s\n",