57 lines
1.9 KiB
Diff
57 lines
1.9 KiB
Diff
|
|
From 2e6562a5c390407e89eb7ab903ab4cc09651bbcb Mon Sep 17 00:00:00 2001
|
||
|
|
From: tangbinzy <tangbin_yewu@cmss.chinamobile.com>
|
||
|
|
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 <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>
|
||
|
|
|
||
|
|
Signed-off-by: tangbinzy <tangbin_yewu@cmss.chinamobile.com>
|
||
|
|
---
|
||
|
|
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
|
||
|
|
|