[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [Qemu-devel] [PATCH] block: Add bdrv_runtime_opts to qu
From: |
Gerd Hoffmann |
Subject: |
Re: [Qemu-block] [Qemu-devel] [PATCH] block: Add bdrv_runtime_opts to query-command-line-options |
Date: |
Fri, 07 Oct 2016 12:49:47 +0200 |
On Do, 2016-10-06 at 11:40 +0200, Kevin Wolf wrote:
> Recently we moved a few options from QemuOptsLists in blockdev.c to
> bdrv_runtime_opts in block.c in order to make them accissble using
> blockdev-add. However, this has the side effect that these options are
> missing from query-command-line-options now, and libvirt consequently
> disables the corresponding feature.
>
> This problem was reported as a regression for the 'discard' option,
> introduced in commit 818584a4. However, it is more general than that.
>
> Fix it by adding bdrv_runtime_opts to the list of QemuOptsLists that are
> returned in query-command-line-options. For the future, libvirt is
> advised to use QMP schema introspection for block device options.
>
> Reported-by: Michal Privoznik <address@hidden>
> Signed-off-by: Kevin Wolf <address@hidden>
Tested-by: Gerd Hoffmann <address@hidden>
> ---
> block.c | 2 +-
> include/sysemu/sysemu.h | 1 +
> util/qemu-config.c | 2 +-
> vl.c | 1 +
> 4 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/block.c b/block.c
> index bb1f1ec..40eb570 100644
> --- a/block.c
> +++ b/block.c
> @@ -926,7 +926,7 @@ out:
> g_free(gen_node_name);
> }
>
> -static QemuOptsList bdrv_runtime_opts = {
> +QemuOptsList bdrv_runtime_opts = {
> .name = "bdrv_common",
> .head = QTAILQ_HEAD_INITIALIZER(bdrv_runtime_opts.head),
> .desc = {
> diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h
> index ef2c50b..b668833 100644
> --- a/include/sysemu/sysemu.h
> +++ b/include/sysemu/sysemu.h
> @@ -235,6 +235,7 @@ bool defaults_enabled(void);
> extern QemuOptsList qemu_legacy_drive_opts;
> extern QemuOptsList qemu_common_drive_opts;
> extern QemuOptsList qemu_drive_opts;
> +extern QemuOptsList bdrv_runtime_opts;
> extern QemuOptsList qemu_chardev_opts;
> extern QemuOptsList qemu_device_opts;
> extern QemuOptsList qemu_netdev_opts;
> diff --git a/util/qemu-config.c b/util/qemu-config.c
> index fb97307..5527100 100644
> --- a/util/qemu-config.c
> +++ b/util/qemu-config.c
> @@ -6,7 +6,7 @@
> #include "qmp-commands.h"
>
> static QemuOptsList *vm_config_groups[48];
> -static QemuOptsList *drive_config_groups[4];
> +static QemuOptsList *drive_config_groups[5];
>
> static QemuOptsList *find_list(QemuOptsList **lists, const char *group,
> Error **errp)
> diff --git a/vl.c b/vl.c
> index f3abd99..9a2e7d5 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -3035,6 +3035,7 @@ int main(int argc, char **argv, char **envp)
> qemu_add_drive_opts(&qemu_legacy_drive_opts);
> qemu_add_drive_opts(&qemu_common_drive_opts);
> qemu_add_drive_opts(&qemu_drive_opts);
> + qemu_add_drive_opts(&bdrv_runtime_opts);
> qemu_add_opts(&qemu_chardev_opts);
> qemu_add_opts(&qemu_device_opts);
> qemu_add_opts(&qemu_netdev_opts);