[Libguestfs] [PATCH v2] lib: Use qemu-img info -U option to avoid locking error.

Pino Toscano ptoscano at redhat.com
Wed Sep 26 16:36:47 UTC 2018


On Friday, 21 September 2018 11:53:52 CEST Richard W.M. Jones wrote:
> +/**
> + * Test if the qemu-img info command supports the C<-U> option to
> + * disable locking.  The result is memoized in the handle.
> + *
> + * Note this option was added in qemu 2.11.  We can remove this test
> + * when we can assume everyone is using qemu >= 2.11.
> + */
> +static int
> +qemu_img_supports_U_option (guestfs_h *g)
> +{
> +  if (g->qemu_img_supports_U_option >= 0)
> +    return g->qemu_img_supports_U_option;
> +
> +  CLEANUP_CMD_CLOSE struct command *cmd = guestfs_int_new_command (g);
> +  int r;
> +
> +  guestfs_int_cmd_add_string_unquoted (cmd,
> +                                       "qemu-img info --help | "
> +                                       "grep -sq -- 'info.*-U'");

This may match something else in future, in case some other command of
qemu-img gets another option with "info" in it...

TBH this is something we have already, and precisely in the qemu_data
struct, which is memoized.  One downside is that using it would mean
memoizing the qemu help/schema in advance, even if the appliance is not
started; so code like `guestfish disk-format foo` will be slower.
OTOH, the upside is that there is no need to "reprobe" qemu-img for
something that we detect already from the QMP schema.

One possible idea can be to cache the qemu_data struct in the handle,
so the direct backend would not get a performance regression (since
either one of the info commands already preloaded a qemu_data, or
launch would do that).

-- 
Pino Toscano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20180926/427bb0af/attachment.sig>


More information about the Libguestfs mailing list