[Libguestfs] [PATCH] inspector: Fix virt-inspector on *BSD guests (RHBZ#1144138).

Richard W.M. Jones rjones at redhat.com
Thu Oct 5 15:36:09 UTC 2017


---
 inspector/inspector.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/inspector/inspector.c b/inspector/inspector.c
index 3583c61df..30d279987 100644
--- a/inspector/inspector.c
+++ b/inspector/inspector.c
@@ -347,6 +347,7 @@ output_root (xmlTextWriterPtr xo, char *root)
   char buf[32];
   char *canonical_root;
   size_t size;
+  int is_bsd;
 
   XMLERROR (-1, xmlTextWriterStartElement (xo, BAD_CAST "operatingsystem"));
 
@@ -362,6 +363,10 @@ output_root (xmlTextWriterPtr xo, char *root)
   if (STRNEQ (str, "unknown"))
     XMLERROR (-1,
 	      xmlTextWriterWriteElement (xo, BAD_CAST "name", BAD_CAST str));
+  is_bsd =
+    STREQ (str, "freebsd") ||
+    STREQ (str, "netbsd") ||
+    STREQ (str, "openbsd");
   free (str);
 
   str = guestfs_inspect_get_arch (g, root);
@@ -451,8 +456,13 @@ output_root (xmlTextWriterPtr xo, char *root)
 
   /* We need to mount everything up in order to read out the list of
    * applications and the icon, ie. everything below this point.
+   *
+   * XXX As a workaround for BSD guests, because the Linux kernel
+   * driver cannot just mount a UFS filesystem, we must disable this
+   * for all *BSD operating systems.  We cannot read the apps or icon
+   * from *BSD anyway.
    */
-  if (inspect_apps || inspect_icon) {
+  if ((inspect_apps || inspect_icon) && !is_bsd) {
     inspect_mount_root (g, root);
 
     if (inspect_apps)
-- 
2.13.2




More information about the Libguestfs mailing list