aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kletzander <mkletzan@redhat.com>2012-09-18 12:01:18 +0200
committerMartin Kletzander <mkletzan@redhat.com>2012-09-18 16:41:13 +0200
commit2f678bb10faccba30319488420c586b6a5436f94 (patch)
tree6210e96c595e86f6a715c0ceacec19975b8ae76f
parentsyntax-check: fix run.in (diff)
downloadlibvirt-2f678bb10faccba30319488420c586b6a5436f94.tar.gz
libvirt-2f678bb10faccba30319488420c586b6a5436f94.tar.bz2
libvirt-2f678bb10faccba30319488420c586b6a5436f94.zip
virNetDevBandwidthClear: Improve error handling
Two changes are introduced in this patch: - The first change removes ATTRIBUTE_RETURN_CHECK from virNetDevBandwidthClear, because it was called with ignore_value always, anyway. The function is used even when it's not necessary to call it, just for cleanup purposes. - The second change is added ignoring of the command's exit status, since it may report an error even when run just as "to be sure we clean up" function. No libvirt errors are suppresed by this.
-rw-r--r--src/network/bridge_driver.c4
-rw-r--r--src/util/virnetdevbandwidth.c10
-rw-r--r--src/util/virnetdevbandwidth.h4
3 files changed, 10 insertions, 8 deletions
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 0e38016e2..3a800c933 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -2161,7 +2161,7 @@ networkStartNetworkVirtual(struct network_driver *driver,
return 0;
err5:
- ignore_value(virNetDevBandwidthClear(network->def->bridge));
+ virNetDevBandwidthClear(network->def->bridge);
err4:
if (!save_err)
@@ -2206,7 +2206,7 @@ networkStartNetworkVirtual(struct network_driver *driver,
static int networkShutdownNetworkVirtual(struct network_driver *driver,
virNetworkObjPtr network)
{
- ignore_value(virNetDevBandwidthClear(network->def->bridge));
+ virNetDevBandwidthClear(network->def->bridge);
if (network->radvdPid > 0) {
char *radvdpidbase;
diff --git a/src/util/virnetdevbandwidth.c b/src/util/virnetdevbandwidth.c
index b23ccd337..8faeae640 100644
--- a/src/util/virnetdevbandwidth.c
+++ b/src/util/virnetdevbandwidth.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2011 Red Hat, Inc.
+ * Copyright (C) 2009-2012 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -69,7 +69,7 @@ virNetDevBandwidthSet(const char *ifname,
goto cleanup;
}
- ignore_value(virNetDevBandwidthClear(ifname));
+ virNetDevBandwidthClear(ifname);
if (bandwidth->in) {
if (virAsprintf(&average, "%llukbps", bandwidth->in->average) < 0)
@@ -166,12 +166,13 @@ int
virNetDevBandwidthClear(const char *ifname)
{
int ret = 0;
+ int dummy; /* for ignoring the exit status */
virCommandPtr cmd = NULL;
cmd = virCommandNew(TC);
virCommandAddArgList(cmd, "qdisc", "del", "dev", ifname, "root", NULL);
- if (virCommandRun(cmd, NULL) < 0)
+ if (virCommandRun(cmd, &dummy) < 0)
ret = -1;
virCommandFree(cmd);
@@ -179,8 +180,9 @@ virNetDevBandwidthClear(const char *ifname)
cmd = virCommandNew(TC);
virCommandAddArgList(cmd, "qdisc", "del", "dev", ifname, "ingress", NULL);
- if (virCommandRun(cmd, NULL) < 0)
+ if (virCommandRun(cmd, &dummy) < 0)
ret = -1;
+
virCommandFree(cmd);
return ret;
diff --git a/src/util/virnetdevbandwidth.h b/src/util/virnetdevbandwidth.h
index 18384ae62..3fc903cfe 100644
--- a/src/util/virnetdevbandwidth.h
+++ b/src/util/virnetdevbandwidth.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2011 Red Hat, Inc.
+ * Copyright (C) 2009-2012 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -44,7 +44,7 @@ void virNetDevBandwidthFree(virNetDevBandwidthPtr def);
int virNetDevBandwidthSet(const char *ifname, virNetDevBandwidthPtr bandwidth)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;
int virNetDevBandwidthClear(const char *ifname)
- ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;
+ ATTRIBUTE_NONNULL(1);
int virNetDevBandwidthCopy(virNetDevBandwidthPtr *dest, const virNetDevBandwidthPtr src)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;