提交 60b3fcd9 编写于 作者: J Jim Fehlig

libxl: MigratePrepare: use standard begin and end API pattern

libxlDomainMigrationPrepare adds the incoming domain def to the list
of domains via virDomainObjListAdd, but never adds its own ref to the
returned virDomainObj as other callers of virDomainObjListAdd do.
libxlDomainMigrationPrepareTunnel3 suffers the same discrepancy.

Change both to add a ref to the virDomainObj after a successful
virDomainObjListAdd, similar to other callers. This ensures a consistent
pattern throughout the drivers and allows using the virDomainObjEndAPI
function for cleanup.
Signed-off-by: NJim Fehlig <jfehlig@suse.com>
Reviewed-by: NJohn Ferlan <jferlan@redhat.com>
上级 fe51dbda
......@@ -583,6 +583,7 @@ libxlDomainMigrationPrepareTunnel3(virConnectPtr dconn,
NULL)))
goto error;
virObjectRef(vm);
*def = NULL;
priv = vm->privateData;
......@@ -635,13 +636,11 @@ libxlDomainMigrationPrepareTunnel3(virConnectPtr dconn,
/* Remove virDomainObj from domain list */
if (vm) {
virDomainObjListRemove(driver->domains, vm);
vm = NULL;
virObjectLock(vm);
}
done:
if (vm)
virObjectUnlock(vm);
virDomainObjEndAPI(&vm);
return ret;
}
......@@ -683,6 +682,7 @@ libxlDomainMigrationPrepare(virConnectPtr dconn,
NULL)))
goto error;
virObjectRef(vm);
*def = NULL;
priv = vm->privateData;
......@@ -810,7 +810,7 @@ libxlDomainMigrationPrepare(virConnectPtr dconn,
/* Remove virDomainObj from domain list */
if (vm) {
virDomainObjListRemove(driver->domains, vm);
vm = NULL;
virObjectLock(vm);
}
done:
......@@ -820,8 +820,7 @@ libxlDomainMigrationPrepare(virConnectPtr dconn,
VIR_FREE(hostname);
else
virURIFree(uri);
if (vm)
virObjectUnlock(vm);
virDomainObjEndAPI(&vm);
virObjectUnref(cfg);
return ret;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册