From: Mariusz Dabrowski Date: Thu, 22 Sep 2016 07:02:11 +0000 (+0200) Subject: Fix RAID metadata check X-Git-Tag: mdadm-4.0~51 X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=commitdiff_plain;h=fa219dd26aa498f3e446798b7b341e8e4a29d378 Fix RAID metadata check mdadm recognizes devices with partition table as part of an RAID array and invalid warning message is displayed. After this fix proper warning messages are being displayed for MBR/GPT disks and devices with RAID metadata. Signed-off-by: Mariusz Dabrowski Signed-off-by: Jes Sorensen --- diff --git a/util.c b/util.c index 8b522423..a238a210 100644 --- a/util.c +++ b/util.c @@ -710,17 +710,22 @@ int check_raid(int fd, char *name) if (!st) return 0; - st->ss->load_super(st, fd, name); - /* Looks like a raid array .. */ - pr_err("%s appears to be part of a raid array:\n", - name); - st->ss->getinfo_super(st, &info, NULL); - st->ss->free_super(st); - crtime = info.array.ctime; - level = map_num(pers, info.array.level); - if (!level) level = "-unknown-"; - cont_err("level=%s devices=%d ctime=%s", - level, info.array.raid_disks, ctime(&crtime)); + if (st->ss->add_to_super != NULL) { + st->ss->load_super(st, fd, name); + /* Looks like a raid array .. */ + pr_err("%s appears to be part of a raid array:\n", name); + st->ss->getinfo_super(st, &info, NULL); + st->ss->free_super(st); + crtime = info.array.ctime; + level = map_num(pers, info.array.level); + if (!level) + level = "-unknown-"; + cont_err("level=%s devices=%d ctime=%s", + level, info.array.raid_disks, ctime(&crtime)); + } else { + /* Looks like GPT or MBR */ + pr_err("partition table exists on %s\n", name); + } return 1; }