From 2e6562a5c390407e89eb7ab903ab4cc09651bbcb Mon Sep 17 00:00:00 2001 From: tangbinzy Date: Fri, 8 Mar 2024 02:48:34 +0000 Subject: [PATCH] qga: treat get-guest-fsinfo as "best effort" mainline inclusion commit bbb0151cf2e82489120a15df5e2eb9653312b0ec category: bugfix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --------------------------------------------------------------- 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 Reviewed-by: Marc-André Lureau Message-Id: <20220708153503.18864-2-jsnow@redhat.com> Signed-off-by: Thomas Huth Signed-off-by: tangbinzy --- qga/commands-posix.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/qga/commands-posix.c b/qga/commands-posix.c index 4e06271889..bee7a47ed2 100644 --- a/qga/commands-posix.c +++ b/qga/commands-posix.c @@ -1201,7 +1201,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; } -- 2.27.0