]> xenbits.xensource.com Git - libvirt.git/commitdiff
network: Separate cleanup from networkRemoveInactive
authorMartin Kletzander <mkletzan@redhat.com>
Tue, 3 Sep 2024 12:59:50 +0000 (14:59 +0200)
committerMartin Kletzander <mkletzan@redhat.com>
Tue, 17 Sep 2024 07:40:37 +0000 (09:40 +0200)
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 <mkletzan@redhat.com>
Reviewed-by: Laine Stump <laine@redhat.com>
src/network/bridge_driver.c

index 3ef3444da24193a16c7a4c8d33b2e7e632c7b131..0e8057e24aedc92e3276b326d2aa3896c5112184 100644 (file)
@@ -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);