
On Wed, Jul 24, 2019 at 1:04 PM Erik Skultety <eskultet@redhat.com> wrote:
On Sat, Jul 06, 2019 at 01:24:22PM +0200, Ilias Stamatis wrote:
Signed-off-by: Ilias Stamatis <stamatis.iliass@gmail.com> --- ...
+ + /* average or floor are mandatory, peak and burst are optional */ + if (!bandwidth->in->average && !bandwidth->in->floor) + VIR_FREE(bandwidth->in); + if (!bandwidth->out->average) + VIR_FREE(bandwidth->out); + + if (!net->bandwidth) { + VIR_STEAL_PTR(net->bandwidth, bandwidth); + } else { + if (bandwidth->in) { + VIR_FREE(net->bandwidth->in); + VIR_STEAL_PTR(net->bandwidth->in, bandwidth->in); + } + if (bandwidth->out) { + VIR_FREE(net->bandwidth->out); + VIR_STEAL_PTR(net->bandwidth->out, bandwidth->out); + } + }
Doesn't look quite right, you just lost any way of resetting the bandwidth when in fact this should be possible simply with setting .average=0, that's why the original QEMU code uses booleans, because then at the end, the whole net->bandwidth structure is set to NULL if reset was requested.
Erik
Aaah, right. This is one of the cases where many implicit comparisons can be confusing. When I was reading that code I was wondering how these booleans are useful at all. Now I get it, I'll send a v2. Thanks, Ilias