blkid: Fix mistake in previous commit.
[libguestfs.git] / src / inspect.c
index e83e824..a7291da 100644 (file)
@@ -61,8 +61,7 @@ guestfs__inspect_os (guestfs_h *g)
    * information to the handle.
    */
   /* Look to see if any devices directly contain filesystems (RHBZ#590167). */
-  char **devices;
-  devices = guestfs_list_devices (g);
+  char **devices = guestfs_list_devices (g);
   if (devices == NULL)
     return NULL;
 
@@ -77,8 +76,7 @@ guestfs__inspect_os (guestfs_h *g)
   guestfs___free_string_list (devices);
 
   /* Look at all partitions. */
-  char **partitions;
-  partitions = guestfs_list_partitions (g);
+  char **partitions = guestfs_list_partitions (g);
   if (partitions == NULL) {
     guestfs___free_inspect_info (g);
     return NULL;
@@ -93,6 +91,22 @@ guestfs__inspect_os (guestfs_h *g)
   }
   guestfs___free_string_list (partitions);
 
+  /* Look at MD devices. */
+  char **mds = guestfs_list_md_devices (g);
+  if (mds == NULL) {
+    guestfs___free_inspect_info (g);
+    return NULL;
+  }
+
+  for (i = 0; mds[i] != NULL; ++i) {
+    if (guestfs___check_for_filesystem_on (g, mds[i], 0, i+1) == -1) {
+      guestfs___free_string_list (mds);
+      guestfs___free_inspect_info (g);
+      return NULL;
+    }
+  }
+  guestfs___free_string_list (mds);
+
   /* Look at all LVs. */
   if (guestfs___feature_available (g, "lvm2")) {
     char **lvs;
@@ -175,6 +189,7 @@ guestfs__inspect_get_type (guestfs_h *g, const char *root)
   char *ret;
   switch (fs->type) {
   case OS_TYPE_FREEBSD: ret = safe_strdup (g, "freebsd"); break;
+  case OS_TYPE_HURD: ret = safe_strdup (g, "hurd"); break;
   case OS_TYPE_LINUX: ret = safe_strdup (g, "linux"); break;
   case OS_TYPE_NETBSD: ret = safe_strdup (g, "netbsd"); break;
   case OS_TYPE_WINDOWS: ret = safe_strdup (g, "windows"); break;
@@ -719,7 +734,7 @@ guestfs___download_to_tmp (guestfs_h *g, struct inspect_fs *fs,
   int64_t size;
 
   /* Make the basename unique by prefixing it with the fs number. */
-  if (asprintf (&r, "%s/%ld-%s", g->tmpdir, fs - g->fses, basename) == -1) {
+  if (asprintf (&r, "%s/%td-%s", g->tmpdir, fs - g->fses, basename) == -1) {
     perrorf (g, "asprintf");
     return NULL;
   }