]> xenbits.xensource.com Git - libvirt.git/commitdiff
libxl: Add refcnt for args->vm during migration
authorJohn Ferlan <jferlan@redhat.com>
Mon, 23 Apr 2018 15:53:16 +0000 (11:53 -0400)
committerJohn Ferlan <jferlan@redhat.com>
Thu, 3 May 2018 23:09:03 +0000 (19:09 -0400)
When adding the @vm to the @args for usage during a thread or
callback, let's add the reference to it at the time of adding to
ensure nothing else deletes it. The corresponding Unref is then
added to the Dispose function.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Marc Hartmayer <mhartmay@linux.vnet.ibm.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
src/libxl/libxl_migration.c

index d7b494b39293cc8786d39d117acd164499664476..7fe352306cb2012bf766bd1cefa57a61f3adc9ce 100644 (file)
@@ -239,6 +239,7 @@ libxlMigrationDstArgsDispose(void *obj)
 
     libxlMigrationCookieFree(args->migcookie);
     VIR_FREE(args->socks);
+    virObjectUnref(args->vm);
 }
 
 static int
@@ -608,7 +609,7 @@ libxlDomainMigrationDstPrepareTunnel3(virConnectPtr dconn,
         goto error;
 
     args->conn = dconn;
-    args->vm = vm;
+    args->vm = virObjectRef(vm);
     args->flags = flags;
     args->migcookie = mig;
     /* Receive from pipeOut */
@@ -763,7 +764,7 @@ libxlDomainMigrationDstPrepare(virConnectPtr dconn,
         goto error;
 
     args->conn = dconn;
-    args->vm = vm;
+    args->vm = virObjectRef(vm);
     args->flags = flags;
     args->socks = socks;
     args->nsocks = nsocks;