diff options
author | NeilBrown <neilb@suse.com> | 2015-12-18 13:51:54 +1100 |
---|---|---|
committer | NeilBrown <neilb@suse.com> | 2015-12-18 13:51:54 +1100 |
commit | 78a5dc039b9344762b8f7cde2d159b482993eb2d (patch) | |
tree | c53cab321fe04cf7e5c81f55733403ca00db4711 | |
parent | 9e70a453edde9571d84372ea5c13a1fab219caac (diff) | |
download | mdadm-78a5dc039b9344762b8f7cde2d159b482993eb2d.tar.gz |
Detail: don't assume a particular 'disk' number of missing devices.
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>
-rw-r--r-- | Detail.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -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); |