[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] [PATCH] network: Don't remove transient network if creating of config file fails



On the off-chance that creation of persistent configuration file would
fail when defining a network that is already started as transient, the
code would remove the transient data structure and thus the network.

This patch changes the code so that in such case, the network is again
marked as transient and left behind.
---
 src/network/bridge_driver.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 27dd230..64c71af 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -3160,8 +3160,13 @@ static virNetworkPtr networkDefine(virConnectPtr conn, const char *xml) {
     freeDef = false;

     if (virNetworkSaveConfig(driver->networkConfigDir, def) < 0) {
-        virNetworkRemoveInactive(&driver->networks, network);
-        network = NULL;
+        if (!virNetworkObjIsActive(network)) {
+            virNetworkRemoveInactive(&driver->networks, network);
+            network = NULL;
+            goto cleanup;
+        }
+        network->persistent = 0;
+        virNetworkDefFree(network->newDef);
         goto cleanup;
     }

-- 
1.8.2.1


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]