[libvirt] [PATCH] qemu: simplify use of HAVE_YAJL
Wen Congyang
wency at cn.fujitsu.com
Fri Oct 21 01:30:02 UTC 2011
At 10/21/2011 04:39 AM, Eric Blake Write:
> Rather than making all clients of monitor commands that are JSON-only
> check whether yajl support was compiled in, it is simpler to just
> avoid setting the capability bit up front if we can't use the capability.
>
> * src/qemu/qemu_capabilities.c (qemuCapsComputeCmdFlags): Only set
> capability bit if we also have yajl library to use it.
> * src/qemu/qemu_driver.c (qemuDomainReboot): Drop #ifdefs.
> * src/qemu/qemu_process.c (qemuProcessStart): Likewise.
> ---
>
> As mentioned here:
> https://www.redhat.com/archives/libvir-list/2011-October/msg01004.html
>
> src/qemu/qemu_capabilities.c | 2 ++
> src/qemu/qemu_driver.c | 6 ------
> src/qemu/qemu_process.c | 2 --
> 3 files changed, 2 insertions(+), 8 deletions(-)
>
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 5f0356c..b4ab55b 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -1060,8 +1060,10 @@ qemuCapsComputeCmdFlags(const char *help,
> * two features. The benefits of JSON mode now outweigh
> * the downside.
> */
> +#if HAVE_YAJL
> if (version >= 13000)
> qemuCapsSet(flags, QEMU_CAPS_MONITOR_JSON);
> +#endif
>
> if (version >= 13000)
> qemuCapsSet(flags, QEMU_CAPS_PCI_MULTIFUNCTION);
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index 0a0a34a..55a9652 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -1538,9 +1538,7 @@ static int qemuDomainReboot(virDomainPtr dom, unsigned int flags) {
> struct qemud_driver *driver = dom->conn->privateData;
> virDomainObjPtr vm;
> int ret = -1;
> -#if HAVE_YAJL
> qemuDomainObjPrivatePtr priv;
> -#endif
>
> virCheckFlags(0, -1);
>
> @@ -1556,7 +1554,6 @@ static int qemuDomainReboot(virDomainPtr dom, unsigned int flags) {
> goto cleanup;
> }
>
> -#if HAVE_YAJL
> priv = vm->privateData;
>
> if (qemuCapsGet(priv->qemuCaps, QEMU_CAPS_MONITOR_JSON)) {
> @@ -1586,12 +1583,9 @@ static int qemuDomainReboot(virDomainPtr dom, unsigned int flags) {
> if (qemuDomainObjEndJob(driver, vm) == 0)
> vm = NULL;
> } else {
> -#endif
> qemuReportError(VIR_ERR_OPERATION_INVALID, "%s",
> _("Reboot is not supported without the JSON monitor"));
> -#if HAVE_YAJL
> }
> -#endif
>
> cleanup:
> if (vm)
> diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
> index a7fe86c..cc2395f 100644
> --- a/src/qemu/qemu_process.c
> +++ b/src/qemu/qemu_process.c
> @@ -2962,11 +2962,9 @@ int qemuProcessStart(virConnectPtr conn,
> if (qemuProcessPrepareMonitorChr(driver, priv->monConfig, vm->def->name) < 0)
> goto cleanup;
>
> -#if HAVE_YAJL
> if (qemuCapsGet(priv->qemuCaps, QEMU_CAPS_MONITOR_JSON))
> priv->monJSON = 1;
> else
> -#endif
> priv->monJSON = 0;
>
> priv->monError = false;
ACK
More information about the libvir-list
mailing list