[libvirt] [PATCH] implement virDomainSetInterfaceParameters

Ilias Stamatis stamatis.iliass at gmail.com
Wed Jul 24 11:46:55 UTC 2019


On Wed, Jul 24, 2019 at 1:04 PM Erik Skultety <eskultet at redhat.com> wrote:
>
> On Sat, Jul 06, 2019 at 01:24:22PM +0200, Ilias Stamatis wrote:
> > Signed-off-by: Ilias Stamatis <stamatis.iliass at 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




More information about the libvir-list mailing list