mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
network: Use automatic mutex management
Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
6f3c0480b1
commit
a71341fad7
@ -100,28 +100,11 @@ networkGetDriver(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
networkDriverLock(virNetworkDriverState *driver)
|
|
||||||
{
|
|
||||||
virMutexLock(&driver->lock);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
networkDriverUnlock(virNetworkDriverState *driver)
|
|
||||||
{
|
|
||||||
virMutexUnlock(&driver->lock);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static dnsmasqCaps *
|
static dnsmasqCaps *
|
||||||
networkGetDnsmasqCaps(virNetworkDriverState *driver)
|
networkGetDnsmasqCaps(virNetworkDriverState *driver)
|
||||||
{
|
{
|
||||||
dnsmasqCaps *ret;
|
VIR_LOCK_GUARD lock = virLockGuardLock(&driver->lock);
|
||||||
networkDriverLock(driver);
|
return virObjectRef(driver->dnsmasqCaps);
|
||||||
ret = virObjectRef(driver->dnsmasqCaps);
|
|
||||||
networkDriverUnlock(driver);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -133,10 +116,11 @@ networkDnsmasqCapsRefresh(virNetworkDriverState *driver)
|
|||||||
if (!(caps = dnsmasqCapsNewFromBinary()))
|
if (!(caps = dnsmasqCapsNewFromBinary()))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
networkDriverLock(driver);
|
VIR_WITH_MUTEX_LOCK_GUARD(&driver->lock) {
|
||||||
virObjectUnref(driver->dnsmasqCaps);
|
virObjectUnref(driver->dnsmasqCaps);
|
||||||
driver->dnsmasqCaps = caps;
|
driver->dnsmasqCaps = caps;
|
||||||
networkDriverUnlock(driver);
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2725,27 +2709,22 @@ static int
|
|||||||
networkBridgeNameValidate(virNetworkObjList *nets,
|
networkBridgeNameValidate(virNetworkObjList *nets,
|
||||||
virNetworkDef *def)
|
virNetworkDef *def)
|
||||||
{
|
{
|
||||||
virMutexLock(&bridgeNameValidateMutex);
|
VIR_LOCK_GUARD lock = virLockGuardLock(&bridgeNameValidateMutex);
|
||||||
|
|
||||||
if (def->bridge && !strstr(def->bridge, "%d")) {
|
if (def->bridge && !strstr(def->bridge, "%d")) {
|
||||||
if (virNetworkObjBridgeInUse(nets, def->bridge, def->name)) {
|
if (virNetworkObjBridgeInUse(nets, def->bridge, def->name)) {
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
_("bridge name '%s' already in use."),
|
_("bridge name '%s' already in use."),
|
||||||
def->bridge);
|
def->bridge);
|
||||||
goto error;
|
return -1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* Allocate a bridge name */
|
/* Allocate a bridge name */
|
||||||
if (networkFindUnusedBridgeName(nets, def) < 0)
|
if (networkFindUnusedBridgeName(nets, def) < 0)
|
||||||
goto error;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
virMutexUnlock(&bridgeNameValidateMutex);
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
error:
|
|
||||||
virMutexUnlock(&bridgeNameValidateMutex);
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user