[libvirt] [PATCHv3] qemu: monitor: Refactor and fix monitor checking

Jiri Denemark jdenemar at redhat.com
Thu Apr 16 12:38:25 UTC 2015


On Wed, Apr 15, 2015 at 16:27:35 +0200, Peter Krempa wrote:
> Among all the monitor APIs some where checking if mon is NULL and some
> were not. Since it's possible to have mon equal to NULL in case a second
> call is attempted once entered the monitor. This requires that every
> single API checks for the monitor.
> 
> This patch adds a macro that helps checking the state of the monitor and
> either refactors existing checking code to use the macro or adds it in
> case it was missing.
> ---
> 
> Notes:
>     Version 3:
>     - fixed the check in qemuMonitorGetAllBlockStatsInfo by moving it before the allocation
>     - added macros for all the return value combinations
>     - removed 'mon' from existing VIR_DEBUG macros
> 
>  src/qemu/qemu_monitor.c | 1151 ++++++++++++-----------------------------------
>  src/qemu/qemu_monitor.h |   18 +-
>  2 files changed, 292 insertions(+), 877 deletions(-)
> 
> diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
> index 1f95547..6d7562d 100644
> --- a/src/qemu/qemu_monitor.c
> +++ b/src/qemu/qemu_monitor.c
...
> @@ -4418,16 +3839,12 @@ int
>  qemuMonitorGetMemoryDeviceInfo(qemuMonitorPtr mon,
>                                 virHashTablePtr *info)
>  {
> -    VIR_DEBUG("mon=%p info=%p", mon, info);
> +    VIR_DEBUG("info=%p", info);
>      int ret;
> 
>      *info = NULL;
> 
> -    if (!mon) {
> -        virReportError(VIR_ERR_INVALID_ARG, "%s",
> -                       _("monitor must not be NULL"));
> -        return -1;
> -    }
> +    QEMU_CHECK_MONITOR_JSON(mon);

s/QEMU_CHECK_MONITOR_JSON/QEMU_CHECK_MONITOR/ because of:

>      if (!mon->json)
>          return -2;

The rest looks correct.

ACK once you fix this last issue.

Jirka




More information about the libvir-list mailing list