Hi On Thu, Jul 7, 2022 at 8:10 AM John Snow <js...@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 <js...@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