]> git.ipfire.org Git - thirdparty/libvirt.git/commit
qemu: delete exist bandwidth restrictions when they are removed from config
authorLaine Stump <laine@laine.org>
Mon, 11 Dec 2017 19:26:54 +0000 (14:26 -0500)
committerLaine Stump <laine@laine.org>
Thu, 14 Dec 2017 18:52:34 +0000 (13:52 -0500)
commitb21163bd119446dcbadab7523b1dc8dab487a571
tree570ec8273d15cd97f5ac2989183160f4e176990b
parent8d51042ef873d2a868d505f0eff32346ba041a95
qemu: delete exist bandwidth restrictions when they are removed from config

When the <bandwidth> of an interface is changed with update-device,
the old settings are cleared with tc, then new settings added with
tc. But if the <bandwidth has been removed, the old settings weren't
being removed, so the bandwidth restrictions would still be active on
the interface although the interface status in libvirt showed that
they had been removed.

This patch fixes it by calling virNetDevBandwidthClear() if the
"modification" to the interface bandwidth was to completely clear
it.

An alternative could have been to modify virNetDevBandwidthSet() to
always clear existing bandwith settings at the beginning of the
function (currently it short circuits in that case, doing nothing),
but that would have led to cases where virNetDevBandwidthClear() was
now being called in cases where it previously wasn't, and while many
of those cases would be NOPs, there could be cases where it would
cause an error. The way this patch works, the ...Clear() function is
only called in cases where the ...Set() function had previously been
called successfully, so the risk of regression is minimized.

  Resolves: https://bugzilla.redhat.com/1454709
src/qemu/qemu_hotplug.c