]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
libxl: convert DefineXMLFlags to use begin/end API pattern
authorJim Fehlig <jfehlig@suse.com>
Fri, 16 Mar 2018 21:29:48 +0000 (15:29 -0600)
committerJim Fehlig <jfehlig@suse.com>
Wed, 21 Mar 2018 18:40:50 +0000 (12:40 -0600)
Similar to other uses of virDomainObjListAdd, on success add a ref to the
virDomainObj so that virDomainObjEndAPI can be called as usual.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
src/libxl/libxl_driver.c

index 3ebeacca8180cb35290ea1b492d8073023123ecd..86cfa0d9a73cd7a3fba2f573567770d084f663b5 100644 (file)
@@ -2794,6 +2794,7 @@ libxlDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flag
                                    &oldDef)))
         goto cleanup;
 
+    virObjectRef(vm);
     def = NULL;
     vm->persistent = 1;
 
@@ -2801,7 +2802,7 @@ libxlDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flag
                             cfg->caps,
                             vm->newDef ? vm->newDef : vm->def) < 0) {
         virDomainObjListRemove(driver->domains, vm);
-        vm = NULL;
+        virObjectLock(vm);
         goto cleanup;
     }
 
@@ -2815,8 +2816,7 @@ libxlDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flag
  cleanup:
     virDomainDefFree(def);
     virDomainDefFree(oldDef);
-    if (vm)
-        virObjectUnlock(vm);
+    virDomainObjEndAPI(&vm);
     if (event)
         libxlDomainEventQueue(driver, event);
     virObjectUnref(cfg);