[libvirt] [PATCH v3 REBASE 07/16] qemu: simplify getting completed job stats

Jiri Denemark jdenemar at redhat.com
Tue Aug 29 13:55:01 UTC 2017


On Thu, Aug 24, 2017 at 09:56:44 +0300, Nikolay Shirokovskiy wrote:
> ---
>  src/qemu/qemu_driver.c | 26 ++++++++++++--------------
>  1 file changed, 12 insertions(+), 14 deletions(-)
> 
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index c62d416..b8a4df7 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -12905,12 +12905,18 @@ qemuDomainGetJobStatsInternal(virQEMUDriverPtr driver,
>                                qemuDomainJobInfoPtr jobInfo)
>  {
>      qemuDomainObjPrivatePtr priv = vm->privateData;
> -    qemuDomainJobInfoPtr info;
>      bool fetch = virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_EVENT);
>      int ret = -1;
>  
> -    if (completed)
> -        fetch = false;
> +    if (completed) {
> +        if (priv->job.current || !priv->job.completed) {
> +            jobInfo->status = QEMU_DOMAIN_JOB_STATUS_NONE;
> +            return 0;
> +        }
> +
> +        *jobInfo = *priv->job.completed;
> +        return 0;

I think keeping just one return would make the code a bit easier to
read:

          if (priv->job.current || !priv->job.completed)
              jobInfo->status = QEMU_DOMAIN_JOB_STATUS_NONE;
          else
              *jobInfo = *priv->job.completed;

          return 0;

Or even

          if (priv->job.completed && !priv->job.current)
              *jobInfo = *priv->job.completed;
          else
              jobInfo->status = QEMU_DOMAIN_JOB_STATUS_NONE;

          return 0;

> +    }
>  
>      /* Do not ask QEMU if migration is not even running yet  */
>      if (!priv->job.current || !priv->job.current->stats.status)
...

Jirka




More information about the libvir-list mailing list