]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Detail: don't assume a particular 'disk' number of missing devices.
authorNeilBrown <neilb@suse.com>
Fri, 18 Dec 2015 02:51:54 +0000 (13:51 +1100)
committerNeilBrown <neilb@suse.com>
Fri, 18 Dec 2015 02:51:54 +0000 (13:51 +1100)
When a particular raid-disk is missing, we don't know which disk number
it should have, and reporting a number could result in duplicate
numbers (with v1.x metadata - never with the old 0.90).

So set the default to -1 and recoginise that when printing.

Signed-off-by: NeilBrown <neilb@suse.com>
Detail.c

index cbf1f9ad9430e407ae9a773e60aeca1daf72000a..ef2aabd47e8a1f8d6e30300789d7cf6b007d71ee 100644 (file)
--- a/Detail.c
+++ b/Detail.c
@@ -299,7 +299,8 @@ int Detail(char *dev, struct context *c)
        for (d = 0; d < max_disks * 2; d++) {
                disks[d].state = (1<<MD_DISK_REMOVED);
                disks[d].major = disks[d].minor = 0;
-               disks[d].number = disks[d].raid_disk = d/2;
+               disks[d].number = -1;
+               disks[d].raid_disk = d/2;
        }
 
        next = array.raid_disks*2;
@@ -622,6 +623,9 @@ This is pretty boring
                        else if (disk.raid_disk < 0)
                                printf("   %5d   %5d    %5d        -     ",
                                       disk.number, disk.major, disk.minor);
+                       else if (disk.number < 0)
+                               printf("       -   %5d    %5d    %5d     ",
+                                      disk.major, disk.minor, disk.raid_disk);
                        else
                                printf("   %5d   %5d    %5d    %5d     ",
                                       disk.number, disk.major, disk.minor, disk.raid_disk);