mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
Remove lxcDriverLock from almost everywhere
With the majority of fields in the virLXCDriverPtr struct now immutable or self-locking, there is no need for practically any methods to be using the LXC driver lock. Only a handful of helper APIs now need it.
This commit is contained in:
parent
2a82171aff
commit
eb150c86b4
@ -167,16 +167,22 @@ error:
|
|||||||
virCapsPtr virLXCDriverGetCapabilities(virLXCDriverPtr driver,
|
virCapsPtr virLXCDriverGetCapabilities(virLXCDriverPtr driver,
|
||||||
bool refresh)
|
bool refresh)
|
||||||
{
|
{
|
||||||
|
virCapsPtr ret;
|
||||||
if (refresh) {
|
if (refresh) {
|
||||||
virCapsPtr caps = NULL;
|
virCapsPtr caps = NULL;
|
||||||
if ((caps = virLXCDriverCapsInit(driver)) == NULL)
|
if ((caps = virLXCDriverCapsInit(driver)) == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
lxcDriverLock(driver);
|
||||||
virObjectUnref(driver->caps);
|
virObjectUnref(driver->caps);
|
||||||
driver->caps = caps;
|
driver->caps = caps;
|
||||||
|
} else {
|
||||||
|
lxcDriverLock(driver);
|
||||||
}
|
}
|
||||||
|
|
||||||
return virObjectRef(driver->caps);
|
ret = virObjectRef(driver->caps);
|
||||||
|
lxcDriverUnlock(driver);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -273,7 +279,11 @@ done:
|
|||||||
|
|
||||||
virLXCDriverConfigPtr virLXCDriverGetConfig(virLXCDriverPtr driver)
|
virLXCDriverConfigPtr virLXCDriverGetConfig(virLXCDriverPtr driver)
|
||||||
{
|
{
|
||||||
return virObjectRef(driver->config);
|
virLXCDriverConfigPtr cfg;
|
||||||
|
lxcDriverLock(driver);
|
||||||
|
cfg = virObjectRef(driver->config);
|
||||||
|
lxcDriverUnlock(driver);
|
||||||
|
return cfg;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -76,7 +76,6 @@ struct _virLXCDriver {
|
|||||||
* lockless access thereafter */
|
* lockless access thereafter */
|
||||||
virCapsPtr caps;
|
virCapsPtr caps;
|
||||||
|
|
||||||
|
|
||||||
/* Immutable pointer, Immutable object */
|
/* Immutable pointer, Immutable object */
|
||||||
virDomainXMLOptionPtr xmlopt;
|
virDomainXMLOptionPtr xmlopt;
|
||||||
|
|
||||||
|
@ -162,10 +162,7 @@ static int lxcConnectClose(virConnectPtr conn)
|
|||||||
{
|
{
|
||||||
virLXCDriverPtr driver = conn->privateData;
|
virLXCDriverPtr driver = conn->privateData;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
virCloseCallbacksRun(driver->closeCallbacks, conn, driver->domains, driver);
|
virCloseCallbacksRun(driver->closeCallbacks, conn, driver->domains, driver);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
conn->privateData = NULL;
|
conn->privateData = NULL;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -199,15 +196,11 @@ static char *lxcConnectGetCapabilities(virConnectPtr conn) {
|
|||||||
if (virConnectGetCapabilitiesEnsureACL(conn) < 0)
|
if (virConnectGetCapabilitiesEnsureACL(conn) < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
if (!(caps = virLXCDriverGetCapabilities(driver, false)))
|
||||||
if (!(caps = virLXCDriverGetCapabilities(driver, false))) {
|
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
|
||||||
|
|
||||||
if ((xml = virCapabilitiesFormatXML(caps)) == NULL)
|
if ((xml = virCapabilitiesFormatXML(caps)) == NULL)
|
||||||
virReportOOMError();
|
virReportOOMError();
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
virObjectUnref(caps);
|
virObjectUnref(caps);
|
||||||
return xml;
|
return xml;
|
||||||
@ -221,9 +214,7 @@ static virDomainPtr lxcDomainLookupByID(virConnectPtr conn,
|
|||||||
virDomainObjPtr vm;
|
virDomainObjPtr vm;
|
||||||
virDomainPtr dom = NULL;
|
virDomainPtr dom = NULL;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByID(driver->domains, id);
|
vm = virDomainObjListFindByID(driver->domains, id);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
virReportError(VIR_ERR_NO_DOMAIN,
|
virReportError(VIR_ERR_NO_DOMAIN,
|
||||||
@ -251,9 +242,7 @@ static virDomainPtr lxcDomainLookupByUUID(virConnectPtr conn,
|
|||||||
virDomainObjPtr vm;
|
virDomainObjPtr vm;
|
||||||
virDomainPtr dom = NULL;
|
virDomainPtr dom = NULL;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, uuid);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
@ -283,9 +272,7 @@ static virDomainPtr lxcDomainLookupByName(virConnectPtr conn,
|
|||||||
virDomainObjPtr vm;
|
virDomainObjPtr vm;
|
||||||
virDomainPtr dom = NULL;
|
virDomainPtr dom = NULL;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByName(driver->domains, name);
|
vm = virDomainObjListFindByName(driver->domains, name);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
virReportError(VIR_ERR_NO_DOMAIN,
|
virReportError(VIR_ERR_NO_DOMAIN,
|
||||||
_("No domain with matching name '%s'"), name);
|
_("No domain with matching name '%s'"), name);
|
||||||
@ -312,9 +299,7 @@ static int lxcDomainIsActive(virDomainPtr dom)
|
|||||||
virDomainObjPtr obj;
|
virDomainObjPtr obj;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
if (!obj) {
|
if (!obj) {
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
virUUIDFormat(dom->uuid, uuidstr);
|
virUUIDFormat(dom->uuid, uuidstr);
|
||||||
@ -341,9 +326,7 @@ static int lxcDomainIsPersistent(virDomainPtr dom)
|
|||||||
virDomainObjPtr obj;
|
virDomainObjPtr obj;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
if (!obj) {
|
if (!obj) {
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
virUUIDFormat(dom->uuid, uuidstr);
|
virUUIDFormat(dom->uuid, uuidstr);
|
||||||
@ -369,9 +352,7 @@ static int lxcDomainIsUpdated(virDomainPtr dom)
|
|||||||
virDomainObjPtr obj;
|
virDomainObjPtr obj;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
if (!obj) {
|
if (!obj) {
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
virUUIDFormat(dom->uuid, uuidstr);
|
virUUIDFormat(dom->uuid, uuidstr);
|
||||||
@ -398,10 +379,8 @@ static int lxcConnectListDomains(virConnectPtr conn, int *ids, int nids) {
|
|||||||
if (virConnectListDomainsEnsureACL(conn) < 0)
|
if (virConnectListDomainsEnsureACL(conn) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
n = virDomainObjListGetActiveIDs(driver->domains, ids, nids,
|
n = virDomainObjListGetActiveIDs(driver->domains, ids, nids,
|
||||||
virConnectListDomainsCheckACL, conn);
|
virConnectListDomainsCheckACL, conn);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
@ -413,10 +392,8 @@ static int lxcConnectNumOfDomains(virConnectPtr conn) {
|
|||||||
if (virConnectNumOfDomainsEnsureACL(conn) < 0)
|
if (virConnectNumOfDomainsEnsureACL(conn) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
n = virDomainObjListNumOfDomains(driver->domains, true,
|
n = virDomainObjListNumOfDomains(driver->domains, true,
|
||||||
virConnectNumOfDomainsCheckACL, conn);
|
virConnectNumOfDomainsCheckACL, conn);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
@ -429,10 +406,8 @@ static int lxcConnectListDefinedDomains(virConnectPtr conn,
|
|||||||
if (virConnectListDefinedDomainsEnsureACL(conn) < 0)
|
if (virConnectListDefinedDomainsEnsureACL(conn) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
n = virDomainObjListGetInactiveNames(driver->domains, names, nnames,
|
n = virDomainObjListGetInactiveNames(driver->domains, names, nnames,
|
||||||
virConnectListDefinedDomainsCheckACL, conn);
|
virConnectListDefinedDomainsCheckACL, conn);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
@ -445,10 +420,8 @@ static int lxcConnectNumOfDefinedDomains(virConnectPtr conn) {
|
|||||||
if (virConnectNumOfDefinedDomainsEnsureACL(conn) < 0)
|
if (virConnectNumOfDefinedDomainsEnsureACL(conn) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
n = virDomainObjListNumOfDomains(driver->domains, false,
|
n = virDomainObjListNumOfDomains(driver->domains, false,
|
||||||
virConnectNumOfDefinedDomainsCheckACL, conn);
|
virConnectNumOfDefinedDomainsCheckACL, conn);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
@ -463,12 +436,9 @@ static virDomainPtr lxcDomainDefineXML(virConnectPtr conn, const char *xml)
|
|||||||
virDomainPtr dom = NULL;
|
virDomainPtr dom = NULL;
|
||||||
virDomainEventPtr event = NULL;
|
virDomainEventPtr event = NULL;
|
||||||
virDomainDefPtr oldDef = NULL;
|
virDomainDefPtr oldDef = NULL;
|
||||||
virLXCDriverConfigPtr cfg = NULL;
|
virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver);
|
||||||
virCapsPtr caps = NULL;
|
virCapsPtr caps = NULL;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
cfg = virLXCDriverGetConfig(driver);
|
|
||||||
|
|
||||||
if (!(caps = virLXCDriverGetCapabilities(driver, false)))
|
if (!(caps = virLXCDriverGetCapabilities(driver, false)))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
@ -521,7 +491,6 @@ cleanup:
|
|||||||
if (event)
|
if (event)
|
||||||
virDomainEventStateQueue(driver->domainEventState, event);
|
virDomainEventStateQueue(driver->domainEventState, event);
|
||||||
virObjectUnref(caps);
|
virObjectUnref(caps);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
return dom;
|
return dom;
|
||||||
}
|
}
|
||||||
@ -533,13 +502,10 @@ static int lxcDomainUndefineFlags(virDomainPtr dom,
|
|||||||
virDomainObjPtr vm;
|
virDomainObjPtr vm;
|
||||||
virDomainEventPtr event = NULL;
|
virDomainEventPtr event = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
virLXCDriverConfigPtr cfg = NULL;
|
virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver);
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
cfg = virLXCDriverGetConfig(driver);
|
|
||||||
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
@ -581,7 +547,6 @@ cleanup:
|
|||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
if (event)
|
if (event)
|
||||||
virDomainEventStateQueue(driver->domainEventState, event);
|
virDomainEventStateQueue(driver->domainEventState, event);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -599,7 +564,6 @@ static int lxcDomainGetInfo(virDomainPtr dom,
|
|||||||
int ret = -1, rc;
|
int ret = -1, rc;
|
||||||
virLXCDomainObjPrivatePtr priv;
|
virLXCDomainObjPrivatePtr priv;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
@ -643,7 +607,6 @@ static int lxcDomainGetInfo(virDomainPtr dom,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
if (vm)
|
if (vm)
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
return ret;
|
return ret;
|
||||||
@ -661,9 +624,7 @@ lxcDomainGetState(virDomainPtr dom,
|
|||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
@ -691,9 +652,7 @@ static char *lxcDomainGetOSType(virDomainPtr dom)
|
|||||||
virDomainObjPtr vm;
|
virDomainObjPtr vm;
|
||||||
char *ret = NULL;
|
char *ret = NULL;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
@ -723,9 +682,7 @@ lxcDomainGetMaxMemory(virDomainPtr dom)
|
|||||||
virDomainObjPtr vm;
|
virDomainObjPtr vm;
|
||||||
unsigned long long ret = 0;
|
unsigned long long ret = 0;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
@ -751,9 +708,7 @@ static int lxcDomainSetMaxMemory(virDomainPtr dom, unsigned long newmax) {
|
|||||||
virDomainObjPtr vm;
|
virDomainObjPtr vm;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
@ -787,9 +742,7 @@ static int lxcDomainSetMemory(virDomainPtr dom, unsigned long newmem) {
|
|||||||
int ret = -1;
|
int ret = -1;
|
||||||
virLXCDomainObjPrivatePtr priv;
|
virLXCDomainObjPrivatePtr priv;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
virUUIDFormat(dom->uuid, uuidstr);
|
virUUIDFormat(dom->uuid, uuidstr);
|
||||||
@ -852,7 +805,6 @@ lxcDomainSetMemoryParameters(virDomainPtr dom,
|
|||||||
NULL) < 0)
|
NULL) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
|
|
||||||
if (vm == NULL) {
|
if (vm == NULL) {
|
||||||
@ -898,7 +850,6 @@ lxcDomainSetMemoryParameters(virDomainPtr dom,
|
|||||||
cleanup:
|
cleanup:
|
||||||
if (vm)
|
if (vm)
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -918,7 +869,6 @@ lxcDomainGetMemoryParameters(virDomainPtr dom,
|
|||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
|
|
||||||
if (vm == NULL) {
|
if (vm == NULL) {
|
||||||
@ -994,7 +944,6 @@ lxcDomainGetMemoryParameters(virDomainPtr dom,
|
|||||||
cleanup:
|
cleanup:
|
||||||
if (vm)
|
if (vm)
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1007,9 +956,7 @@ static char *lxcDomainGetXMLDesc(virDomainPtr dom,
|
|||||||
|
|
||||||
/* Flags checked by virDomainDefFormat */
|
/* Flags checked by virDomainDefFormat */
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
@ -1050,13 +997,10 @@ static int lxcDomainCreateWithFiles(virDomainPtr dom,
|
|||||||
virDomainObjPtr vm;
|
virDomainObjPtr vm;
|
||||||
virDomainEventPtr event = NULL;
|
virDomainEventPtr event = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
virLXCDriverConfigPtr cfg = NULL;
|
virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver);
|
||||||
|
|
||||||
virCheckFlags(VIR_DOMAIN_START_AUTODESTROY, -1);
|
virCheckFlags(VIR_DOMAIN_START_AUTODESTROY, -1);
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
cfg = virLXCDriverGetConfig(driver);
|
|
||||||
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
@ -1100,7 +1044,6 @@ cleanup:
|
|||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
if (event)
|
if (event)
|
||||||
virDomainEventStateQueue(driver->domainEventState, event);
|
virDomainEventStateQueue(driver->domainEventState, event);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -1153,14 +1096,11 @@ lxcDomainCreateXMLWithFiles(virConnectPtr conn,
|
|||||||
virDomainDefPtr def = NULL;
|
virDomainDefPtr def = NULL;
|
||||||
virDomainPtr dom = NULL;
|
virDomainPtr dom = NULL;
|
||||||
virDomainEventPtr event = NULL;
|
virDomainEventPtr event = NULL;
|
||||||
virLXCDriverConfigPtr cfg = NULL;
|
virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver);
|
||||||
virCapsPtr caps = NULL;
|
virCapsPtr caps = NULL;
|
||||||
|
|
||||||
virCheckFlags(VIR_DOMAIN_START_AUTODESTROY, NULL);
|
virCheckFlags(VIR_DOMAIN_START_AUTODESTROY, NULL);
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
cfg = virLXCDriverGetConfig(driver);
|
|
||||||
|
|
||||||
if (!(caps = virLXCDriverGetCapabilities(driver, false)))
|
if (!(caps = virLXCDriverGetCapabilities(driver, false)))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
@ -1215,7 +1155,6 @@ cleanup:
|
|||||||
if (event)
|
if (event)
|
||||||
virDomainEventStateQueue(driver->domainEventState, event);
|
virDomainEventStateQueue(driver->domainEventState, event);
|
||||||
virObjectUnref(caps);
|
virObjectUnref(caps);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
return dom;
|
return dom;
|
||||||
}
|
}
|
||||||
@ -1235,7 +1174,6 @@ static int lxcDomainGetSecurityLabel(virDomainPtr dom, virSecurityLabelPtr secla
|
|||||||
virDomainObjPtr vm;
|
virDomainObjPtr vm;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
|
|
||||||
memset(seclabel, 0, sizeof(*seclabel));
|
memset(seclabel, 0, sizeof(*seclabel));
|
||||||
@ -1294,7 +1232,6 @@ static int lxcDomainGetSecurityLabel(virDomainPtr dom, virSecurityLabelPtr secla
|
|||||||
cleanup:
|
cleanup:
|
||||||
if (vm)
|
if (vm)
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1305,7 +1242,6 @@ static int lxcNodeGetSecurityModel(virConnectPtr conn,
|
|||||||
virCapsPtr caps = NULL;
|
virCapsPtr caps = NULL;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
memset(secmodel, 0, sizeof(*secmodel));
|
memset(secmodel, 0, sizeof(*secmodel));
|
||||||
|
|
||||||
if (virNodeGetSecurityModelEnsureACL(conn) < 0)
|
if (virNodeGetSecurityModelEnsureACL(conn) < 0)
|
||||||
@ -1339,7 +1275,6 @@ static int lxcNodeGetSecurityModel(virConnectPtr conn,
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virObjectUnref(caps);
|
virObjectUnref(caps);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1356,11 +1291,9 @@ lxcConnectDomainEventRegister(virConnectPtr conn,
|
|||||||
if (virConnectDomainEventRegisterEnsureACL(conn) < 0)
|
if (virConnectDomainEventRegisterEnsureACL(conn) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
ret = virDomainEventStateRegister(conn,
|
ret = virDomainEventStateRegister(conn,
|
||||||
driver->domainEventState,
|
driver->domainEventState,
|
||||||
callback, opaque, freecb);
|
callback, opaque, freecb);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -1376,11 +1309,9 @@ lxcConnectDomainEventDeregister(virConnectPtr conn,
|
|||||||
if (virConnectDomainEventDeregisterEnsureACL(conn) < 0)
|
if (virConnectDomainEventDeregisterEnsureACL(conn) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
ret = virDomainEventStateDeregister(conn,
|
ret = virDomainEventStateDeregister(conn,
|
||||||
driver->domainEventState,
|
driver->domainEventState,
|
||||||
callback);
|
callback);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -1400,13 +1331,11 @@ lxcConnectDomainEventRegisterAny(virConnectPtr conn,
|
|||||||
if (virConnectDomainEventRegisterAnyEnsureACL(conn) < 0)
|
if (virConnectDomainEventRegisterAnyEnsureACL(conn) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
if (virDomainEventStateRegisterID(conn,
|
if (virDomainEventStateRegisterID(conn,
|
||||||
driver->domainEventState,
|
driver->domainEventState,
|
||||||
dom, eventID,
|
dom, eventID,
|
||||||
callback, opaque, freecb, &ret) < 0)
|
callback, opaque, freecb, &ret) < 0)
|
||||||
ret = -1;
|
ret = -1;
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -1422,11 +1351,9 @@ lxcConnectDomainEventDeregisterAny(virConnectPtr conn,
|
|||||||
if (virConnectDomainEventDeregisterAnyEnsureACL(conn) < 0)
|
if (virConnectDomainEventDeregisterAnyEnsureACL(conn) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
ret = virDomainEventStateDeregisterID(conn,
|
ret = virDomainEventStateDeregisterID(conn,
|
||||||
driver->domainEventState,
|
driver->domainEventState,
|
||||||
callbackID);
|
callbackID);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -1453,7 +1380,6 @@ lxcDomainDestroyFlags(virDomainPtr dom,
|
|||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
@ -1489,7 +1415,6 @@ cleanup:
|
|||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
if (event)
|
if (event)
|
||||||
virDomainEventStateQueue(driver->domainEventState, event);
|
virDomainEventStateQueue(driver->domainEventState, event);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1581,7 +1506,6 @@ static int lxcStateInitialize(bool privileged,
|
|||||||
VIR_FREE(lxc_driver);
|
VIR_FREE(lxc_driver);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
lxcDriverLock(lxc_driver);
|
|
||||||
|
|
||||||
if (!(lxc_driver->domains = virDomainObjListNew()))
|
if (!(lxc_driver->domains = virDomainObjListNew()))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -1642,8 +1566,6 @@ static int lxcStateInitialize(bool privileged,
|
|||||||
NULL, NULL) < 0)
|
NULL, NULL) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
lxcDriverUnlock(lxc_driver);
|
|
||||||
|
|
||||||
virLXCProcessAutostartAll(lxc_driver);
|
virLXCProcessAutostartAll(lxc_driver);
|
||||||
|
|
||||||
virNWFilterRegisterCallbackDriver(&lxcCallbackDriver);
|
virNWFilterRegisterCallbackDriver(&lxcCallbackDriver);
|
||||||
@ -1651,7 +1573,6 @@ static int lxcStateInitialize(bool privileged,
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virObjectUnref(caps);
|
virObjectUnref(caps);
|
||||||
lxcDriverUnlock(lxc_driver);
|
|
||||||
lxcStateCleanup();
|
lxcStateCleanup();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -1684,11 +1605,8 @@ lxcStateReload(void) {
|
|||||||
if (!lxc_driver)
|
if (!lxc_driver)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
lxcDriverLock(lxc_driver);
|
if (!(caps = virLXCDriverGetCapabilities(lxc_driver, false)))
|
||||||
if (!(caps = virLXCDriverGetCapabilities(lxc_driver, false))) {
|
|
||||||
lxcDriverUnlock(lxc_driver);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
|
||||||
|
|
||||||
cfg = virLXCDriverGetConfig(lxc_driver);
|
cfg = virLXCDriverGetConfig(lxc_driver);
|
||||||
|
|
||||||
@ -1699,7 +1617,6 @@ lxcStateReload(void) {
|
|||||||
lxc_driver->xmlopt,
|
lxc_driver->xmlopt,
|
||||||
1 << VIR_DOMAIN_VIRT_LXC,
|
1 << VIR_DOMAIN_VIRT_LXC,
|
||||||
lxcNotifyLoadDomain, lxc_driver);
|
lxcNotifyLoadDomain, lxc_driver);
|
||||||
lxcDriverUnlock(lxc_driver);
|
|
||||||
virObjectUnref(caps);
|
virObjectUnref(caps);
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
return 0;
|
return 0;
|
||||||
@ -1710,7 +1627,6 @@ static int lxcStateCleanup(void)
|
|||||||
if (lxc_driver == NULL)
|
if (lxc_driver == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
lxcDriverLock(lxc_driver);
|
|
||||||
virNWFilterUnRegisterCallbackDriver(&lxcCallbackDriver);
|
virNWFilterUnRegisterCallbackDriver(&lxcCallbackDriver);
|
||||||
virObjectUnref(lxc_driver->domains);
|
virObjectUnref(lxc_driver->domains);
|
||||||
virDomainEventStateFree(lxc_driver->domainEventState);
|
virDomainEventStateFree(lxc_driver->domainEventState);
|
||||||
@ -1724,7 +1640,6 @@ static int lxcStateCleanup(void)
|
|||||||
virObjectUnref(lxc_driver->securityManager);
|
virObjectUnref(lxc_driver->securityManager);
|
||||||
virObjectUnref(lxc_driver->xmlopt);
|
virObjectUnref(lxc_driver->xmlopt);
|
||||||
virObjectUnref(lxc_driver->config);
|
virObjectUnref(lxc_driver->config);
|
||||||
lxcDriverUnlock(lxc_driver);
|
|
||||||
virMutexDestroy(&lxc_driver->lock);
|
virMutexDestroy(&lxc_driver->lock);
|
||||||
VIR_FREE(lxc_driver);
|
VIR_FREE(lxc_driver);
|
||||||
|
|
||||||
@ -1802,7 +1717,6 @@ static char *lxcDomainGetSchedulerType(virDomainPtr dom,
|
|||||||
virDomainObjPtr vm;
|
virDomainObjPtr vm;
|
||||||
virLXCDomainObjPrivatePtr priv;
|
virLXCDomainObjPrivatePtr priv;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
if (vm == NULL) {
|
if (vm == NULL) {
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
@ -1843,7 +1757,6 @@ static char *lxcDomainGetSchedulerType(virDomainPtr dom,
|
|||||||
cleanup:
|
cleanup:
|
||||||
if (vm)
|
if (vm)
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1935,7 +1848,7 @@ lxcDomainSetSchedulerParametersFlags(virDomainPtr dom,
|
|||||||
int ret = -1;
|
int ret = -1;
|
||||||
int rc;
|
int rc;
|
||||||
virLXCDomainObjPrivatePtr priv;
|
virLXCDomainObjPrivatePtr priv;
|
||||||
virLXCDriverConfigPtr cfg = NULL;
|
virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver);
|
||||||
|
|
||||||
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
|
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
|
||||||
VIR_DOMAIN_AFFECT_CONFIG, -1);
|
VIR_DOMAIN_AFFECT_CONFIG, -1);
|
||||||
@ -1949,10 +1862,6 @@ lxcDomainSetSchedulerParametersFlags(virDomainPtr dom,
|
|||||||
NULL) < 0)
|
NULL) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
|
|
||||||
cfg = virLXCDriverGetConfig(driver);
|
|
||||||
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
|
|
||||||
if (vm == NULL) {
|
if (vm == NULL) {
|
||||||
@ -2054,7 +1963,6 @@ cleanup:
|
|||||||
if (vm)
|
if (vm)
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
virObjectUnref(caps);
|
virObjectUnref(caps);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -2089,8 +1997,6 @@ lxcDomainGetSchedulerParametersFlags(virDomainPtr dom,
|
|||||||
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
|
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
|
||||||
VIR_DOMAIN_AFFECT_CONFIG, -1);
|
VIR_DOMAIN_AFFECT_CONFIG, -1);
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
|
|
||||||
if (vm == NULL) {
|
if (vm == NULL) {
|
||||||
@ -2177,7 +2083,6 @@ cleanup:
|
|||||||
if (vm)
|
if (vm)
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
virObjectUnref(caps);
|
virObjectUnref(caps);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2203,7 +2108,7 @@ lxcDomainSetBlkioParameters(virDomainPtr dom,
|
|||||||
virDomainDefPtr persistentDef = NULL;
|
virDomainDefPtr persistentDef = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
virLXCDomainObjPrivatePtr priv;
|
virLXCDomainObjPrivatePtr priv;
|
||||||
virLXCDriverConfigPtr cfg = NULL;
|
virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver);
|
||||||
|
|
||||||
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
|
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
|
||||||
VIR_DOMAIN_AFFECT_CONFIG, -1);
|
VIR_DOMAIN_AFFECT_CONFIG, -1);
|
||||||
@ -2213,10 +2118,6 @@ lxcDomainSetBlkioParameters(virDomainPtr dom,
|
|||||||
NULL) < 0)
|
NULL) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
|
|
||||||
cfg = virLXCDriverGetConfig(driver);
|
|
||||||
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
|
|
||||||
if (vm == NULL) {
|
if (vm == NULL) {
|
||||||
@ -2291,7 +2192,6 @@ cleanup:
|
|||||||
if (vm)
|
if (vm)
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
virObjectUnref(caps);
|
virObjectUnref(caps);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -2316,7 +2216,6 @@ lxcDomainGetBlkioParameters(virDomainPtr dom,
|
|||||||
|
|
||||||
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
|
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
|
||||||
VIR_DOMAIN_AFFECT_CONFIG, -1);
|
VIR_DOMAIN_AFFECT_CONFIG, -1);
|
||||||
lxcDriverLock(driver);
|
|
||||||
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
|
|
||||||
@ -2402,7 +2301,6 @@ cleanup:
|
|||||||
if (vm)
|
if (vm)
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
virObjectUnref(caps);
|
virObjectUnref(caps);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2418,9 +2316,7 @@ lxcDomainInterfaceStats(virDomainPtr dom,
|
|||||||
size_t i;
|
size_t i;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
@ -2476,9 +2372,7 @@ static int lxcDomainGetAutostart(virDomainPtr dom,
|
|||||||
virDomainObjPtr vm;
|
virDomainObjPtr vm;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
@ -2507,10 +2401,7 @@ static int lxcDomainSetAutostart(virDomainPtr dom,
|
|||||||
virDomainObjPtr vm;
|
virDomainObjPtr vm;
|
||||||
char *configFile = NULL, *autostartLink = NULL;
|
char *configFile = NULL, *autostartLink = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
virLXCDriverConfigPtr cfg = NULL;
|
virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver);
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
cfg = virLXCDriverGetConfig(driver);
|
|
||||||
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
|
|
||||||
@ -2578,7 +2469,6 @@ cleanup:
|
|||||||
VIR_FREE(autostartLink);
|
VIR_FREE(autostartLink);
|
||||||
if (vm)
|
if (vm)
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -2675,10 +2565,7 @@ static int lxcDomainSuspend(virDomainPtr dom)
|
|||||||
virDomainObjPtr vm;
|
virDomainObjPtr vm;
|
||||||
virDomainEventPtr event = NULL;
|
virDomainEventPtr event = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
virLXCDriverConfigPtr cfg = NULL;
|
virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver);
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
cfg = virLXCDriverGetConfig(driver);
|
|
||||||
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
|
|
||||||
@ -2721,7 +2608,6 @@ cleanup:
|
|||||||
virDomainEventStateQueue(driver->domainEventState, event);
|
virDomainEventStateQueue(driver->domainEventState, event);
|
||||||
if (vm)
|
if (vm)
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -2733,10 +2619,7 @@ static int lxcDomainResume(virDomainPtr dom)
|
|||||||
virDomainEventPtr event = NULL;
|
virDomainEventPtr event = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
virLXCDomainObjPrivatePtr priv;
|
virLXCDomainObjPrivatePtr priv;
|
||||||
virLXCDriverConfigPtr cfg = NULL;
|
virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver);
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
cfg = virLXCDriverGetConfig(driver);
|
|
||||||
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
|
|
||||||
@ -2782,7 +2665,6 @@ cleanup:
|
|||||||
virDomainEventStateQueue(driver->domainEventState, event);
|
virDomainEventStateQueue(driver->domainEventState, event);
|
||||||
if (vm)
|
if (vm)
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -2802,7 +2684,6 @@ lxcDomainOpenConsole(virDomainPtr dom,
|
|||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
virUUIDFormat(dom->uuid, uuidstr);
|
virUUIDFormat(dom->uuid, uuidstr);
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
@ -2856,7 +2737,6 @@ lxcDomainOpenConsole(virDomainPtr dom,
|
|||||||
cleanup:
|
cleanup:
|
||||||
if (vm)
|
if (vm)
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2883,10 +2763,8 @@ lxcDomainSendProcessSignal(virDomainPtr dom,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
virUUIDFormat(dom->uuid, uuidstr);
|
virUUIDFormat(dom->uuid, uuidstr);
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
virReportError(VIR_ERR_NO_DOMAIN,
|
virReportError(VIR_ERR_NO_DOMAIN,
|
||||||
_("no domain with matching uuid '%s'"), uuidstr);
|
_("no domain with matching uuid '%s'"), uuidstr);
|
||||||
@ -2955,11 +2833,8 @@ lxcConnectListAllDomains(virConnectPtr conn,
|
|||||||
if (virConnectListAllDomainsEnsureACL(conn) < 0)
|
if (virConnectListAllDomainsEnsureACL(conn) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
ret = virDomainObjListExport(driver->domains, conn, domains,
|
ret = virDomainObjListExport(driver->domains, conn, domains,
|
||||||
virConnectListAllDomainsCheckACL, flags);
|
virConnectListAllDomainsCheckACL, flags);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2978,9 +2853,7 @@ lxcDomainShutdownFlags(virDomainPtr dom,
|
|||||||
virCheckFlags(VIR_DOMAIN_SHUTDOWN_INITCTL |
|
virCheckFlags(VIR_DOMAIN_SHUTDOWN_INITCTL |
|
||||||
VIR_DOMAIN_SHUTDOWN_SIGNAL, -1);
|
VIR_DOMAIN_SHUTDOWN_SIGNAL, -1);
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
@ -3068,9 +2941,7 @@ lxcDomainReboot(virDomainPtr dom,
|
|||||||
virCheckFlags(VIR_DOMAIN_REBOOT_INITCTL |
|
virCheckFlags(VIR_DOMAIN_REBOOT_INITCTL |
|
||||||
VIR_DOMAIN_REBOOT_SIGNAL, -1);
|
VIR_DOMAIN_REBOOT_SIGNAL, -1);
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
@ -4410,16 +4281,13 @@ static int lxcDomainAttachDeviceFlags(virDomainPtr dom,
|
|||||||
virDomainDeviceDefPtr dev = NULL, dev_copy = NULL;
|
virDomainDeviceDefPtr dev = NULL, dev_copy = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
unsigned int affect;
|
unsigned int affect;
|
||||||
virLXCDriverConfigPtr cfg = NULL;
|
virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver);
|
||||||
|
|
||||||
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
|
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
|
||||||
VIR_DOMAIN_AFFECT_CONFIG, -1);
|
VIR_DOMAIN_AFFECT_CONFIG, -1);
|
||||||
|
|
||||||
affect = flags & (VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG);
|
affect = flags & (VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG);
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
cfg = virLXCDriverGetConfig(driver);
|
|
||||||
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
@ -4521,7 +4389,6 @@ cleanup:
|
|||||||
if (vm)
|
if (vm)
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
virObjectUnref(caps);
|
virObjectUnref(caps);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -4546,7 +4413,7 @@ static int lxcDomainUpdateDeviceFlags(virDomainPtr dom,
|
|||||||
virDomainDeviceDefPtr dev = NULL, dev_copy = NULL;
|
virDomainDeviceDefPtr dev = NULL, dev_copy = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
unsigned int affect;
|
unsigned int affect;
|
||||||
virLXCDriverConfigPtr cfg = NULL;
|
virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver);
|
||||||
|
|
||||||
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
|
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
|
||||||
VIR_DOMAIN_AFFECT_CONFIG |
|
VIR_DOMAIN_AFFECT_CONFIG |
|
||||||
@ -4554,9 +4421,6 @@ static int lxcDomainUpdateDeviceFlags(virDomainPtr dom,
|
|||||||
|
|
||||||
affect = flags & (VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG);
|
affect = flags & (VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG);
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
cfg = virLXCDriverGetConfig(driver);
|
|
||||||
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
@ -4651,7 +4515,6 @@ cleanup:
|
|||||||
if (vm)
|
if (vm)
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
virObjectUnref(caps);
|
virObjectUnref(caps);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -4668,16 +4531,13 @@ static int lxcDomainDetachDeviceFlags(virDomainPtr dom,
|
|||||||
virDomainDeviceDefPtr dev = NULL, dev_copy = NULL;
|
virDomainDeviceDefPtr dev = NULL, dev_copy = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
unsigned int affect;
|
unsigned int affect;
|
||||||
virLXCDriverConfigPtr cfg = NULL;
|
virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver);
|
||||||
|
|
||||||
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
|
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
|
||||||
VIR_DOMAIN_AFFECT_CONFIG, -1);
|
VIR_DOMAIN_AFFECT_CONFIG, -1);
|
||||||
|
|
||||||
affect = flags & (VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG);
|
affect = flags & (VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG);
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
cfg = virLXCDriverGetConfig(driver);
|
|
||||||
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
@ -4780,7 +4640,6 @@ cleanup:
|
|||||||
if (vm)
|
if (vm)
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
virObjectUnref(caps);
|
virObjectUnref(caps);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -4807,9 +4666,7 @@ static int lxcDomainLxcOpenNamespace(virDomainPtr dom,
|
|||||||
*fdlist = NULL;
|
*fdlist = NULL;
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
if (!vm) {
|
if (!vm) {
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
virUUIDFormat(dom->uuid, uuidstr);
|
virUUIDFormat(dom->uuid, uuidstr);
|
||||||
|
@ -487,9 +487,7 @@ static void virLXCProcessMonitorEOFNotify(virLXCMonitorPtr mon,
|
|||||||
|
|
||||||
VIR_DEBUG("mon=%p vm=%p", mon, vm);
|
VIR_DEBUG("mon=%p vm=%p", mon, vm);
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
virObjectLock(vm);
|
virObjectLock(vm);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
priv = vm->privateData;
|
priv = vm->privateData;
|
||||||
virLXCProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_SHUTDOWN);
|
virLXCProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_SHUTDOWN);
|
||||||
@ -527,9 +525,7 @@ static void virLXCProcessMonitorEOFNotify(virLXCMonitorPtr mon,
|
|||||||
if (vm)
|
if (vm)
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
if (event) {
|
if (event) {
|
||||||
lxcDriverLock(driver);
|
|
||||||
virDomainEventStateQueue(driver->domainEventState, event);
|
virDomainEventStateQueue(driver->domainEventState, event);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -537,12 +533,9 @@ static void virLXCProcessMonitorExitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
|
|||||||
virLXCMonitorExitStatus status,
|
virLXCMonitorExitStatus status,
|
||||||
virDomainObjPtr vm)
|
virDomainObjPtr vm)
|
||||||
{
|
{
|
||||||
virLXCDriverPtr driver = lxc_driver;
|
|
||||||
virLXCDomainObjPrivatePtr priv = vm->privateData;
|
virLXCDomainObjPrivatePtr priv = vm->privateData;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
virObjectLock(vm);
|
virObjectLock(vm);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case VIR_LXC_MONITOR_EXIT_STATUS_SHUTDOWN:
|
case VIR_LXC_MONITOR_EXIT_STATUS_SHUTDOWN:
|
||||||
@ -601,13 +594,10 @@ static void virLXCProcessMonitorInitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
|
|||||||
{
|
{
|
||||||
virLXCDriverPtr driver = lxc_driver;
|
virLXCDriverPtr driver = lxc_driver;
|
||||||
virLXCDomainObjPrivatePtr priv;
|
virLXCDomainObjPrivatePtr priv;
|
||||||
virLXCDriverConfigPtr cfg;
|
virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver);
|
||||||
ino_t inode;
|
ino_t inode;
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
virObjectLock(vm);
|
virObjectLock(vm);
|
||||||
cfg = virLXCDriverGetConfig(driver);
|
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
priv = vm->privateData;
|
priv = vm->privateData;
|
||||||
priv->initpid = initpid;
|
priv->initpid = initpid;
|
||||||
@ -1371,11 +1361,9 @@ virLXCProcessAutostartAll(virLXCDriverPtr driver)
|
|||||||
|
|
||||||
struct virLXCProcessAutostartData data = { driver, conn };
|
struct virLXCProcessAutostartData data = { driver, conn };
|
||||||
|
|
||||||
lxcDriverLock(driver);
|
|
||||||
virDomainObjListForEach(driver->domains,
|
virDomainObjListForEach(driver->domains,
|
||||||
virLXCProcessAutostartDomain,
|
virLXCProcessAutostartDomain,
|
||||||
&data);
|
&data);
|
||||||
lxcDriverUnlock(driver);
|
|
||||||
|
|
||||||
if (conn)
|
if (conn)
|
||||||
virConnectClose(conn);
|
virConnectClose(conn);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user