mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-05 22:05:47 +00:00
virNWFilterDriverState: Destroy mutex safely
Allow nwfilterStateCleanupLocked to be called on a partially constructed driver object. This enables the next patch to simplify and fix error handling in nwfilterStateInitialize. Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
008162e12a
commit
8bbb8d6a58
@ -45,6 +45,7 @@ struct _virNWFilterDriverState {
|
|||||||
|
|
||||||
/* Recursive. Hold for filter changes, instantiation or deletion */
|
/* Recursive. Hold for filter changes, instantiation or deletion */
|
||||||
virMutex updateLock;
|
virMutex updateLock;
|
||||||
|
bool updateLockInitialized;
|
||||||
};
|
};
|
||||||
|
|
||||||
virNWFilterDef *
|
virNWFilterDef *
|
||||||
|
@ -173,7 +173,8 @@ nwfilterStateCleanupLocked(void)
|
|||||||
/* free inactive nwfilters */
|
/* free inactive nwfilters */
|
||||||
virNWFilterObjListFree(driver->nwfilters);
|
virNWFilterObjListFree(driver->nwfilters);
|
||||||
|
|
||||||
virMutexDestroy(&driver->updateLock);
|
if (driver->updateLockInitialized)
|
||||||
|
virMutexDestroy(&driver->updateLock);
|
||||||
g_clear_pointer(&driver, g_free);
|
g_clear_pointer(&driver, g_free);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -222,6 +223,7 @@ nwfilterStateInitialize(bool privileged,
|
|||||||
if (virMutexInitRecursive(&driver->updateLock) < 0)
|
if (virMutexInitRecursive(&driver->updateLock) < 0)
|
||||||
goto err_free_driverstate;
|
goto err_free_driverstate;
|
||||||
|
|
||||||
|
driver->updateLockInitialized = true;
|
||||||
driver->privileged = privileged;
|
driver->privileged = privileged;
|
||||||
|
|
||||||
if (!(driver->nwfilters = virNWFilterObjListNew()))
|
if (!(driver->nwfilters = virNWFilterObjListNew()))
|
||||||
|
Loading…
Reference in New Issue
Block a user