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