X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=blobdiff_plain;f=Query.c;h=88df3214b835de0b90a6f1995d4da28367385524;hp=71aafd84b706ff48d301e43f6bd2549dba102b35;hb=f9ce90ba509d0b624cc38635861b9c27550fbefc;hpb=4b1ac34b51a3783ab528b1af307156fab057b543 diff --git a/Query.c b/Query.c index 71aafd84..88df3214 100644 --- a/Query.c +++ b/Query.c @@ -44,6 +44,7 @@ int Query(char *dev) struct mdinfo info; mdu_array_info_t array; void *super; + struct superswitch *ss = NULL; unsigned long long larray_size; unsigned long array_size; @@ -94,12 +95,16 @@ int Query(char *dev) array.raid_disks, array.spare_disks, array.spare_disks==1?"":"s"); } - superror = load_super0(fd, &super, dev); - superrno = errno; + ss = guess_super(fd, dev); + if (ss) { + superror = ss->load_super(fd, &super, dev); + superrno = errno; + } else + superror = -1; close(fd); if (superror == 0) { /* array might be active... */ - getinfo_super0(&info, super); + ss->getinfo_super(&info, super); mddev = get_md_name(info.array.md_minor); disc.number = info.disk.number; activity = "undetected";