]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
imsm: return associated uuid for spares
authorDan Williams <dan.j.williams@intel.com>
Tue, 28 Oct 2008 17:55:31 +0000 (10:55 -0700)
committerDan Williams <dan.j.williams@intel.com>
Tue, 28 Oct 2008 17:55:31 +0000 (10:55 -0700)
This prevents a uuid of all f's from being displayed when an imsm spare is
listed along with active disks for mdadm -Eb.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
super-intel.c

index d176dfd068601a28e104640fb320f7acc2c107c6..babb098499478df6756a725009c513c0aec91546 100644 (file)
@@ -825,7 +825,11 @@ static void getinfo_super_imsm(struct supertype *st, struct mdinfo *info)
                info->disk.state |= s & FAILED_DISK ? (1 << MD_DISK_FAULTY) : 0;
                info->disk.state |= s & SPARE_DISK ? 0 : (1 << MD_DISK_SYNC);
        }
-       if (info->disk.state & (1 << MD_DISK_SYNC))
+
+       /* only call uuid_from_super_imsm when this disk is part of a populated container,
+        * ->compare_super may have updated the 'num_raid_devs' field for spares
+        */
+       if (info->disk.state & (1 << MD_DISK_SYNC) || super->anchor->num_raid_devs)
                uuid_from_super_imsm(st, info->uuid);
        else
                memcpy(info->uuid, uuid_match_any, sizeof(int[4]));