]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - util.c
util: Introduce md_get_array_info()
[thirdparty/mdadm.git] / util.c
diff --git a/util.c b/util.c
index 374015ede8d31f9f1646f71a24ae4f52353d40ba..725877d105bb137658d30d598476a3102074f870 100644 (file)
--- a/util.c
+++ b/util.c
@@ -211,6 +211,15 @@ int cluster_release_dlmlock(int lockid)
 }
 #endif
 
+/*
+ * Get array info from the kernel. Longer term we want to deprecate the
+ * ioctl and get it from sysfs.
+ */
+int md_get_array_info(int fd, struct mdu_array_info_s *array)
+{
+       return ioctl(fd, GET_ARRAY_INFO, array);
+}
+
 /*
  * Parse a 128 bit uuid in 4 integers
  * format is 32 hexx nibbles with options :.<space> separator
@@ -539,8 +548,7 @@ int enough_fd(int fd)
        int i, rv;
        char *avail;
 
-       if (ioctl(fd, GET_ARRAY_INFO, &array) != 0 ||
-           array.raid_disks <= 0)
+       if (md_get_array_info(fd, &array) != 0 || array.raid_disks <= 0)
                return 0;
        avail = xcalloc(array.raid_disks, 1);
        for (i = 0; i < MAX_DISKS && array.nr_disks > 0; i++) {
@@ -1175,7 +1183,7 @@ struct supertype *super_by_fd(int fd, char **subarrayp)
                minor = sra->array.minor_version;
                verstr = sra->text_version;
        } else {
-               if (ioctl(fd, GET_ARRAY_INFO, &array))
+               if (md_get_array_info(fd, &array))
                        array.major_version = array.minor_version = 0;
                vers = array.major_version;
                minor = array.minor_version;