]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - Query.c
imsm: support RAID 10 with more than 4 drives
[thirdparty/mdadm.git] / Query.c
diff --git a/Query.c b/Query.c
index 2bd0e2a005843fb9bd603276e12ca5d865d9402b..adcd231e051b19fa5fb5b418d5af6f2980a53dc5 100644 (file)
--- a/Query.c
+++ b/Query.c
@@ -85,16 +85,15 @@ int Query(char *dev)
 
        if (ioctlerr == ENODEV)
                printf("%s: is an md device which is not active\n", dev);
+       else if (ioctlerr && major(stb.st_rdev) != MD_MAJOR)
+               printf("%s: is not an md array\n", dev);
        else if (ioctlerr)
                printf("%s: is an md device, but gives \"%s\" when queried\n",
                       dev, strerror(ioctlerr));
-       else if (staterr)
-               printf("%s: is not a valid md device, returning %s\n",
-                      dev, strerror(ioctlerr));
        else {
                printf("%s: %s %s %d devices, %d spare%s. Use mdadm --detail for more detail.\n",
                       dev, human_size_brief(larray_size,IEC),
-                      map_num(pers, level), raid_disks,
+                      map_num_s(pers, level), raid_disks,
                       spare_disks, spare_disks == 1 ? "" : "s");
        }
        st = guess_super(fd);
@@ -132,7 +131,7 @@ int Query(char *dev)
                       dev,
                       info.disk.number, info.array.raid_disks,
                       activity,
-                      map_num(pers, info.array.level),
+                      map_num_s(pers, info.array.level),
                       mddev);
                if (st->ss == &super0)
                        put_md_name(mddev);