qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 01/13] qga: treat get-guest-fsinfo as "best effort"


From: Marc-André Lureau
Subject: Re: [PATCH v3 01/13] qga: treat get-guest-fsinfo as "best effort"
Date: Thu, 7 Jul 2022 12:40:02 +0400

Hi

On Thu, Jul 7, 2022 at 8:10 AM John Snow <jsnow@redhat.com> wrote:
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>
---
 qga/commands-posix.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/qga/commands-posix.c b/qga/commands-posix.c
index 0469dc409d4..950c9d72fe7 100644
--- a/qga/commands-posix.c
+++ b/qga/commands-posix.c
@@ -1207,7 +1207,12 @@ 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) {
+            /* This devpath may not exist because of container config, etc. */
+            fs->name = g_path_get_basename(devpath);
+        } else {
+            error_setg_errno(errp, errno, "realpath(\"%s\")", devpath);
+        }

It looks like this function is called recursively with the same "fs" argument. That's probably why there is a if (!fs->name) check next. You may want to check it too to avoid leaks and incorrect info.
 
         return;
     }

--
2.34.3




--
Marc-André Lureau

reply via email to

[Prev in Thread] Current Thread [Next in Thread]