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 <mariusz.dabrowski@intel.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
This commit is contained in:
Mariusz Dabrowski 2016-09-22 09:02:11 +02:00 committed by Jes Sorensen
parent 676e87a806
commit fa219dd26a
1 changed files with 16 additions and 11 deletions

27
util.c
View File

@ -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;
}