提交 9b4fe4c1 编写于 作者: J John Ferlan

openvz: Use virDomainObjListFindBy{UUID|ID}Ref

For openvzDomObjFromDomainLocked and openvzDomainLookupByID
let's return a locked and referenced @vm object so that callers
can then use the common and more consistent virDomainObjEndAPI
in order to handle cleanup rather than needing to know that the
returned object is locked and calling virObjectUnlock.

The LookupByName already returns the ref counted and locked object,
so this will make things more consistent.
Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
Reviewed-by: NJim Fehlig <jfehlig@suse.com>
上级 b7eb4b93
...@@ -95,7 +95,7 @@ openvzDomObjFromDomainLocked(struct openvz_driver *driver, ...@@ -95,7 +95,7 @@ openvzDomObjFromDomainLocked(struct openvz_driver *driver,
virDomainObjPtr vm; virDomainObjPtr vm;
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
if (!(vm = virDomainObjListFindByUUID(driver->domains, uuid))) { if (!(vm = virDomainObjListFindByUUIDRef(driver->domains, uuid))) {
virUUIDFormat(uuid, uuidstr); virUUIDFormat(uuid, uuidstr);
virReportError(VIR_ERR_NO_DOMAIN, virReportError(VIR_ERR_NO_DOMAIN,
...@@ -329,8 +329,7 @@ openvzDomainGetHostname(virDomainPtr dom, unsigned int flags) ...@@ -329,8 +329,7 @@ openvzDomainGetHostname(virDomainPtr dom, unsigned int flags)
} }
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return hostname; return hostname;
error: error:
...@@ -347,7 +346,7 @@ static virDomainPtr openvzDomainLookupByID(virConnectPtr conn, ...@@ -347,7 +346,7 @@ static virDomainPtr openvzDomainLookupByID(virConnectPtr conn,
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainObjListFindByID(driver->domains, id); vm = virDomainObjListFindByIDRef(driver->domains, id);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!vm) { if (!vm) {
...@@ -359,8 +358,7 @@ static virDomainPtr openvzDomainLookupByID(virConnectPtr conn, ...@@ -359,8 +358,7 @@ static virDomainPtr openvzDomainLookupByID(virConnectPtr conn,
dom = virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); dom = virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id);
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return dom; return dom;
} }
...@@ -391,8 +389,7 @@ static char *openvzDomainGetOSType(virDomainPtr dom) ...@@ -391,8 +389,7 @@ static char *openvzDomainGetOSType(virDomainPtr dom)
ignore_value(VIR_STRDUP(ret, virDomainOSTypeToString(vm->def->os.type))); ignore_value(VIR_STRDUP(ret, virDomainOSTypeToString(vm->def->os.type)));
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return ret; return ret;
} }
...@@ -409,8 +406,7 @@ static virDomainPtr openvzDomainLookupByUUID(virConnectPtr conn, ...@@ -409,8 +406,7 @@ static virDomainPtr openvzDomainLookupByUUID(virConnectPtr conn,
dom = virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); dom = virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id);
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return dom; return dom;
} }
...@@ -469,8 +465,7 @@ static int openvzDomainGetInfo(virDomainPtr dom, ...@@ -469,8 +465,7 @@ static int openvzDomainGetInfo(virDomainPtr dom,
ret = 0; ret = 0;
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return ret; return ret;
} }
...@@ -492,8 +487,7 @@ openvzDomainGetState(virDomainPtr dom, ...@@ -492,8 +487,7 @@ openvzDomainGetState(virDomainPtr dom,
ret = openvzGetVEStatus(vm, state, reason); ret = openvzGetVEStatus(vm, state, reason);
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return ret; return ret;
} }
...@@ -509,8 +503,7 @@ static int openvzDomainIsActive(virDomainPtr dom) ...@@ -509,8 +503,7 @@ static int openvzDomainIsActive(virDomainPtr dom)
ret = virDomainObjIsActive(obj); ret = virDomainObjIsActive(obj);
if (obj) virDomainObjEndAPI(&obj);
virObjectUnlock(obj);
return ret; return ret;
} }
...@@ -526,8 +519,7 @@ static int openvzDomainIsPersistent(virDomainPtr dom) ...@@ -526,8 +519,7 @@ static int openvzDomainIsPersistent(virDomainPtr dom)
ret = obj->persistent; ret = obj->persistent;
if (obj) virDomainObjEndAPI(&obj);
virObjectUnlock(obj);
return ret; return ret;
} }
...@@ -549,8 +541,7 @@ static char *openvzDomainGetXMLDesc(virDomainPtr dom, unsigned int flags) { ...@@ -549,8 +541,7 @@ static char *openvzDomainGetXMLDesc(virDomainPtr dom, unsigned int flags) {
ret = virDomainDefFormat(vm->def, driver->caps, ret = virDomainDefFormat(vm->def, driver->caps,
virDomainDefFormatConvertXMLFlags(flags)); virDomainDefFormatConvertXMLFlags(flags));
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return ret; return ret;
} }
...@@ -600,8 +591,7 @@ static int openvzDomainSuspend(virDomainPtr dom) ...@@ -600,8 +591,7 @@ static int openvzDomainSuspend(virDomainPtr dom)
ret = 0; ret = 0;
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return ret; return ret;
} }
...@@ -631,8 +621,7 @@ static int openvzDomainResume(virDomainPtr dom) ...@@ -631,8 +621,7 @@ static int openvzDomainResume(virDomainPtr dom)
ret = 0; ret = 0;
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return ret; return ret;
} }
...@@ -670,8 +659,7 @@ openvzDomainShutdownFlags(virDomainPtr dom, ...@@ -670,8 +659,7 @@ openvzDomainShutdownFlags(virDomainPtr dom,
ret = 0; ret = 0;
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return ret; return ret;
} }
...@@ -724,8 +712,7 @@ static int openvzDomainReboot(virDomainPtr dom, ...@@ -724,8 +712,7 @@ static int openvzDomainReboot(virDomainPtr dom,
virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, VIR_DOMAIN_RUNNING_BOOTED); virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, VIR_DOMAIN_RUNNING_BOOTED);
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return ret; return ret;
} }
...@@ -1178,14 +1165,13 @@ openvzDomainUndefineFlags(virDomainPtr dom, ...@@ -1178,14 +1165,13 @@ openvzDomainUndefineFlags(virDomainPtr dom,
vm->persistent = 0; vm->persistent = 0;
} else { } else {
virDomainObjListRemove(driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; virObjectLock(vm);
} }
ret = 0; ret = 0;
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
return ret; return ret;
} }
...@@ -1214,8 +1200,7 @@ openvzDomainSetAutostart(virDomainPtr dom, int autostart) ...@@ -1214,8 +1200,7 @@ openvzDomainSetAutostart(virDomainPtr dom, int autostart)
ret = 0; ret = 0;
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return ret; return ret;
} }
...@@ -1244,8 +1229,7 @@ openvzDomainGetAutostart(virDomainPtr dom, int *autostart) ...@@ -1244,8 +1229,7 @@ openvzDomainGetAutostart(virDomainPtr dom, int *autostart)
cleanup: cleanup:
VIR_FREE(value); VIR_FREE(value);
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return ret; return ret;
} }
...@@ -1337,8 +1321,7 @@ static int openvzDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus, ...@@ -1337,8 +1321,7 @@ static int openvzDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus,
ret = 0; ret = 0;
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return ret; return ret;
} }
...@@ -1935,8 +1918,7 @@ openvzDomainInterfaceStats(virDomainPtr dom, ...@@ -1935,8 +1918,7 @@ openvzDomainInterfaceStats(virDomainPtr dom,
ret = 0; ret = 0;
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return ret; return ret;
} }
...@@ -2030,8 +2012,7 @@ openvzDomainUpdateDeviceFlags(virDomainPtr dom, const char *xml, ...@@ -2030,8 +2012,7 @@ openvzDomainUpdateDeviceFlags(virDomainPtr dom, const char *xml,
cleanup: cleanup:
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
virDomainDeviceDefFree(dev); virDomainDeviceDefFree(dev);
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return ret; return ret;
} }
...@@ -2180,8 +2161,7 @@ openvzDomainMigrateBegin3Params(virDomainPtr domain, ...@@ -2180,8 +2161,7 @@ openvzDomainMigrateBegin3Params(virDomainPtr domain,
VIR_DOMAIN_DEF_FORMAT_SECURE); VIR_DOMAIN_DEF_FORMAT_SECURE);
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return xml; return xml;
} }
...@@ -2337,8 +2317,7 @@ openvzDomainMigratePerform3Params(virDomainPtr domain, ...@@ -2337,8 +2317,7 @@ openvzDomainMigratePerform3Params(virDomainPtr domain,
cleanup: cleanup:
virCommandFree(cmd); virCommandFree(cmd);
virURIFree(uri); virURIFree(uri);
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return ret; return ret;
} }
...@@ -2440,13 +2419,12 @@ openvzDomainMigrateConfirm3Params(virDomainPtr domain, ...@@ -2440,13 +2419,12 @@ openvzDomainMigrateConfirm3Params(virDomainPtr domain,
VIR_DEBUG("Domain '%s' successfully migrated", vm->def->name); VIR_DEBUG("Domain '%s' successfully migrated", vm->def->name);
virDomainObjListRemove(driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; virObjectLock(vm);
ret = 0; ret = 0;
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return ret; return ret;
} }
...@@ -2464,8 +2442,7 @@ openvzDomainHasManagedSaveImage(virDomainPtr dom, unsigned int flags) ...@@ -2464,8 +2442,7 @@ openvzDomainHasManagedSaveImage(virDomainPtr dom, unsigned int flags)
ret = 0; ret = 0;
if (obj) virDomainObjEndAPI(&obj);
virObjectUnlock(obj);
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册