]> git.proxmox.com Git - mirror_qemu.git/commitdiff
qga: treat get-guest-fsinfo as "best effort"
authorJohn Snow <jsnow@redhat.com>
Fri, 8 Jul 2022 15:34:52 +0000 (11:34 -0400)
committerThomas Huth <thuth@redhat.com>
Mon, 18 Jul 2022 18:24:36 +0000 (20:24 +0200)
In some container environments, there may be references to block devices
witnessable from a container through /proc/self/mountinfo that reference
devices we simply don't have access to in the container, and cannot
provide information about.

Instead of failing the entire fsinfo command, return stub information
for these failed lookups.

This allows test-qga to pass under docker tests, which are in turn used
by the CentOS VM tests.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20220708153503.18864-2-jsnow@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
qga/commands-posix.c

index f18530d85f0656d76d2abb8cc9b3883e5a8f170b..954efed01b2ff747bddb10fa4559d51c22069c79 100644 (file)
@@ -1207,7 +1207,15 @@ static void build_guest_fsinfo_for_device(char const *devpath,
 
     syspath = realpath(devpath, NULL);
     if (!syspath) {
-        error_setg_errno(errp, errno, "realpath(\"%s\")", devpath);
+        if (errno != ENOENT) {
+            error_setg_errno(errp, errno, "realpath(\"%s\")", devpath);
+            return;
+        }
+
+        /* ENOENT: This devpath may not exist because of container config */
+        if (!fs->name) {
+            fs->name = g_path_get_basename(devpath);
+        }
         return;
     }