[libvirt] [PATCH 4/4] qemu: Don't repeat virDomainObjEndAPI in qemuDomainBlockPull

Michal Privoznik mprivozn at redhat.com
Mon Sep 30 14:22:34 UTC 2019


On 9/27/19 3:05 PM, Peter Krempa wrote:
> Use VIR_AUTORELEASE instead.
> 
> Signed-off-by: Peter Krempa <pkrempa at redhat.com>
> ---
>   src/qemu/qemu_driver.c | 8 +++-----
>   1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index 0988071708..ed59e64c10 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -18911,21 +18911,19 @@ static int
>   qemuDomainBlockPull(virDomainPtr dom, const char *path, unsigned long bandwidth,
>                       unsigned int flags)
>   {
> -    virDomainObjPtr vm;
> +    VIR_AUTORELEASE(virDomainObjPtr) vm = NULL;
> +
>       virCheckFlags(VIR_DOMAIN_BLOCK_PULL_BANDWIDTH_BYTES, -1);
> 
>       if (!(vm = qemuDomObjFromDomain(dom)))
>           return -1;
> 
> -    if (virDomainBlockPullEnsureACL(dom->conn, vm->def) < 0) {
> -        virDomainObjEndAPI(&vm);
> +    if (virDomainBlockPullEnsureACL(dom->conn, vm->def) < 0)
>           return -1;
> -    }
> 
>       if (virDomainListCheckpoints(vm->checkpoints, NULL, dom, NULL, 0) > 0) {
>           virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
>                          _("cannot perform block pull while checkpoint exists"));
> -        virDomainObjEndAPI(&vm);
>           return -1;
>       }
> 

This needs to be rebased. But also, you've missed one virDomainObjEndAPI() at the end. This patch needs to look like this:

diff --git c/src/qemu/qemu_driver.c w/src/qemu/qemu_driver.c
index 103187709b..1bcb99f13d 100644
--- c/src/qemu/qemu_driver.c
+++ w/src/qemu/qemu_driver.c
@@ -18497,25 +18497,23 @@ static int
 qemuDomainBlockPull(virDomainPtr dom, const char *path, unsigned long bandwidth,
                     unsigned int flags)
 {
-    virDomainObjPtr vm;
-    int ret = -1;
+    VIR_AUTORELEASE(virDomainObjPtr) vm = NULL;
 
     virCheckFlags(VIR_DOMAIN_BLOCK_PULL_BANDWIDTH_BYTES, -1);
 
     if (!(vm = qemuDomainObjFromDomain(dom)))
         return -1;
 
     if (virDomainBlockPullEnsureACL(dom->conn, vm->def) < 0)
-        goto cleanup;
+        return -1;
 
     if (qemuDomainSupportsCheckpointsBlockjobs(vm) < 0)
-        goto cleanup;
+        return -1;
 
-    ret = qemuDomainBlockPullCommon(vm, path, NULL, bandwidth, flags);
+    if (qemuDomainBlockPullCommon(vm, path, NULL, bandwidth, flags) < 0)
+        return -1;
 
- cleanup:
-    virDomainObjEndAPI(&vm);
-    return ret;
+    return 0;
 }


Michal




More information about the libvir-list mailing list