Allow compilation without hivex (RHBZ#723474).
[libguestfs.git] / src / inspect_fs_unix.c
index b8be049..72b5666 100644 (file)
@@ -694,6 +694,9 @@ add_fstab_entry (guestfs_h *g, struct inspect_fs *fs,
   else if (STRPREFIX (spec, "LABEL="))
     device = guestfs_findfs_label (g, &spec[6]);
   /* Ignore "/.swap" (Pardus) and pseudo-devices like "tmpfs". */
+  else if (STREQ (spec, "/dev/root"))
+    /* Resolve /dev/root to the current device. */
+    device = safe_strdup (g, fs->device);
   else if (STRPREFIX (spec, "/dev/"))
     /* Resolve guest block device names. */
     device = resolve_fstab_device (g, spec);
@@ -792,15 +795,13 @@ resolve_fstab_device (guestfs_h *g, const char *spec)
     free (bsdslice);
     free (bsdpart);
 
-    if (disk == -1 || disk > 26 ||
-        slice <= 0 || slice > 1 /* > 4 .. see comment above */ ||
-        part < 0 || part >= 26)
-      goto out;
-
-    device = safe_asprintf (g, "/dev/sd%c%d", disk + 'a', part + 5);
+    if (disk != -1 && disk <= 26 &&
+        slice > 0 && slice <= 1 /* > 4 .. see comment above */ &&
+        part >= 0 && part < 26) {
+      device = safe_asprintf (g, "/dev/sd%c%d", disk + 'a', part + 5);
+    }
   }
 
- out:
   /* Didn't match device pattern, return original spec unchanged. */
   if (device == NULL)
     device = safe_strdup (g, spec);