From: Luyao Huang Date: Wed, 31 Dec 2014 01:34:39 +0000 (+0800) Subject: qemu: Restore old bandwidth rules when setting new fails X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=565d049fd1a4f3264a12001467a0bbf3b87a6421;p=libvirt.git qemu: Restore old bandwidth rules when setting new fails https://bugzilla.redhat.com/show_bug.cgi?id=1177723 When setting new bandwidth limits via virDomainSetInterfaceParameters, the old ones are cleared first. However, if setting the new ones fails, the old are already gone and interface is left in inconsistent state. Therefore, right before failing we ought to try to restore the old bandwidth. Signed-off-by: Luyao Huang --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 1596d2bc25..cdf4173809 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -10510,8 +10510,12 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom, sizeof(*newBandwidth->out)); } - if (virNetDevBandwidthSet(net->ifname, newBandwidth, false) < 0) + if (virNetDevBandwidthSet(net->ifname, newBandwidth, false) < 0) { + ignore_value(virNetDevBandwidthSet(net->ifname, + net->bandwidth, + false)); goto endjob; + } virNetDevBandwidthFree(net->bandwidth); if (newBandwidth->in || newBandwidth->out) {