On 30 March 2017 at 17:54, Michael Roth <mdr...@linux.vnet.ibm.com> wrote:
> In some cases the slave devices of a virtual block device are tracked
> by the parent in the corresponding sysfs node. For instance, if we
> have a loop-back mount of the form:
>
>   /dev/loop3p1 on /home/mdroth/mnt type ext4 (rw,relatime,data=ordered)
>
> this will be reflected in sysfs as:
>
>   /sys/devices/virtual/block/loop3/
>   ...
>   /sys/devices/virtual/block/loop3/slaves
>   /sys/devices/virtual/block/loop3/loop3p1
>
> The current code however assumes the mounted virtual block device,
> loop3p1 in this case, contains the slaves directory, and reports an
> error otherwise. This breaks 'make check' in certain environments.
>
> Fix this by simply skipping attempts to generate disk topology
> information in these cases. Since this information is documented
> in QAPI as optionally-reported, this should be ok from an API
> perspective.
>
> In the future, this can possibly be improved upon by collecting
> topology information from the parent in these cases.
>
> Reported-by: Peter Maydell <peter.mayd...@linaro.org>
> Cc: Peter Maydell <peter.mayd...@linaro.org>
> Signed-off-by: Michael Roth <mdr...@linux.vnet.ibm.com>
> ---
>  qga/commands-posix.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/qga/commands-posix.c b/qga/commands-posix.c
> index 73d93eb..915df9e 100644
> --- a/qga/commands-posix.c
> +++ b/qga/commands-posix.c
> @@ -999,7 +999,9 @@ static void build_guest_fsinfo_for_virtual_device(char 
> const *syspath,
>      dirpath = g_strdup_printf("%s/slaves", syspath);
>      dir = opendir(dirpath);
>      if (!dir) {
> -        error_setg_errno(errp, errno, "opendir(\"%s\")", dirpath);
> +        if (errno != ENOENT) {
> +            error_setg_errno(errp, errno, "opendir(\"%s\")", dirpath);
> +        }
>          g_free(dirpath);
>          return;
>      }
> --
> 2.7.4

Tested-by: Peter Maydell <peter.mayd...@linaro.org>

though only confirming that the test now passes on this sparc box.

thanks
-- PMM

Reply via email to