File libvirt-networkStartNetwork-Be-more-verbose.patch of Package libvirt

From 28bd78cc12c589c483c8b8fb086fddf8eeb57ef1 Mon Sep 17 00:00:00 2001
Message-Id: <28bd78cc12c589c483c8b8fb086fddf8eeb57ef1@dist-git>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Wed, 14 May 2014 16:12:14 +0200
Subject: [PATCH] networkStartNetwork: Be more verbose

https://bugzilla.redhat.com/show_bug.cgi?id=1064831

The lack of debug printings might be frustrating in the future.
Moreover, this function doesn't follow the usual pattern we have in the
rest of the code:

  int ret = -1;
  /* do some work */
  ret = 0;
cleanup:
  /* some cleanup work */
  return ret;

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit e209c077605831ac8ce2fe5c6dce6a177e7f5083)

Conflicts:
	src/network/bridge_driver.c: we don't use dynamic path to network
    state dir (2ffd87d8204c209b81610b56ee5161ae71b58b8c).
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
 src/network/bridge_driver.c | 34 +++++++++++++++++++---------------
 1 file changed, 19 insertions(+), 15 deletions(-)

diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index abe1e62..b29db37 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -2393,23 +2393,29 @@ static int
 networkStartNetwork(struct network_driver *driver,
                     virNetworkObjPtr network)
 {
-    int ret = 0;
+    int ret = -1;
+
+    VIR_DEBUG("driver=%p, network=%p", driver, network);
 
     if (virNetworkObjIsActive(network)) {
         virReportError(VIR_ERR_OPERATION_INVALID,
                        "%s", _("network is already active"));
-        return -1;
+        return ret;
     }
 
+    VIR_DEBUG("Beginning network startup process");
+
+    VIR_DEBUG("Setting current network def as transient");
     if (virNetworkObjSetDefTransient(network, true) < 0)
-        return -1;
+        goto cleanup;
 
     switch (network->def->forwardType) {
 
     case VIR_NETWORK_FORWARD_NONE:
     case VIR_NETWORK_FORWARD_NAT:
     case VIR_NETWORK_FORWARD_ROUTE:
-        ret = networkStartNetworkVirtual(driver, network);
+        if (networkStartNetworkVirtual(driver, network) < 0)
+            goto cleanup;
         break;
 
     case VIR_NETWORK_FORWARD_BRIDGE:
@@ -2417,27 +2423,25 @@ networkStartNetwork(struct network_driver *driver,
     case VIR_NETWORK_FORWARD_VEPA:
     case VIR_NETWORK_FORWARD_PASSTHROUGH:
     case VIR_NETWORK_FORWARD_HOSTDEV:
-        ret = networkStartNetworkExternal(driver, network);
+        if (networkStartNetworkExternal(driver, network) < 0)
+            goto cleanup;
         break;
     }
 
-    if (ret < 0) {
-        virNetworkObjUnsetDefTransient(network);
-        return ret;
-    }
-
     /* Persist the live configuration now that anything autogenerated
      * is setup.
      */
-    if ((ret = virNetworkSaveStatus(NETWORK_STATE_DIR, network)) < 0) {
-        goto error;
-    }
+    VIR_DEBUG("Writing network status to disk");
+    if (virNetworkSaveStatus(NETWORK_STATE_DIR, network) < 0)
+        goto cleanup;
 
-    VIR_INFO("Starting up network '%s'", network->def->name);
     network->active = 1;
+    VIR_INFO("Network '%s' started up", network->def->name);
+    ret = 0;
 
-error:
+cleanup:
     if (ret < 0) {
+        virNetworkObjUnsetDefTransient(network);
         virErrorPtr save_err = virSaveLastError();
         int save_errno = errno;
         networkShutdownNetwork(driver, network);
-- 
1.9.3

openSUSE Build Service is sponsored by