From: Martin Kletzander Date: Tue, 3 Sep 2024 12:59:50 +0000 (+0200) Subject: network: Separate cleanup from networkRemoveInactive X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=2bea2782d5eccc96da7b93d3ec6ce79afc4dca71;p=libvirt.git network: Separate cleanup from networkRemoveInactive The new function (networkCleanupInactive) can be called from an iterator over the list of networks without the risk of deadlock. Signed-off-by: Martin Kletzander Reviewed-by: Laine Stump --- diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 3ef3444da2..0e8057e24a 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -325,10 +325,10 @@ networkDnsmasqConfigFileName(virNetworkDriverConfig *cfg, } -/* do needed cleanup steps and remove the network from the list */ +/* do needed cleanup steps */ static int -networkRemoveInactive(virNetworkDriverState *driver, - virNetworkObj *obj) +networkCleanupInactive(virNetworkDriverState *driver, + virNetworkObj *obj) { g_autoptr(virNetworkDriverConfig) cfg = virNetworkDriverGetConfig(driver); g_autofree char *leasefile = NULL; @@ -372,6 +372,18 @@ networkRemoveInactive(virNetworkDriverState *driver, /* remove status file */ unlink(statusfile); + return 0; +} + + +/* do needed cleanup steps and remove the network from the list */ +static int +networkRemoveInactive(virNetworkDriverState *driver, + virNetworkObj *obj) +{ + if (networkCleanupInactive(driver, obj) < 0) + return -1; + /* remove the network definition */ virNetworkObjRemoveInactive(driver->networks, obj);