[RFC PATCH 02/16] qemu: checkpoint: split out checkpoint deletion bitmaps

Peter Krempa pkrempa at redhat.com
Mon Jan 27 09:08:34 UTC 2020


On Fri, Jan 24, 2020 at 11:13:01 -0600, Eric Blake wrote:
> On 1/9/20 12:21 PM, Peter Krempa wrote:
> > qemuCheckpointDiscard is a massive function that can be separated into
> > smaller bits. Extract the part that actually modifies the disk from the
> > metadata handling.
> > 
> > Signed-off-by: Peter Krempa <pkrempa at redhat.com>
> > ---
> >   src/qemu/qemu_checkpoint.c | 137 ++++++++++++++++++++-----------------
> >   1 file changed, 76 insertions(+), 61 deletions(-)
> > 
> > diff --git a/src/qemu/qemu_checkpoint.c b/src/qemu/qemu_checkpoint.c
> > index d13d4c2a37..9ff3129570 100644
> > --- a/src/qemu/qemu_checkpoint.c
> > +++ b/src/qemu/qemu_checkpoint.c
> > @@ -104,6 +104,81 @@ qemuCheckpointWriteMetadata(virDomainObjPtr vm,
> >   }
> > 
> > 
> > +static int
> > +qemuCheckpointDiscardBitmaps(virDomainObjPtr vm,
> > +                             virDomainCheckpointDefPtr chkdef,
> > +                             bool chkcurrent,
> > +                             virDomainMomentObjPtr parent)
> > +{
> > +    qemuDomainObjPrivatePtr priv = vm->privateData;
> > +    virQEMUDriverPtr driver = priv->driver;
> > +    virDomainMomentObjPtr moment;
> > +    virDomainCheckpointDefPtr parentdef = NULL;
> > +    bool search_parents;
> > +    int rc;
> > +    g_autoptr(virJSONValue) actions = NULL;
> > +    size_t i;
> > +    size_t j;
> > +
> > +    if (!(actions = virJSONValueNewArray()))
> > +        return -1;
> 
> Can virJSONValueNewArray() still return failure now that we have shifted to
> using g_new()?

It can't fail any more, but it internally uses VIR_ALLOC which is
declared with ATTRIBUTE_RETURN_CHECK thus we have to check the return
value. Also even if we did not, e.g. coverity heuristically assumes that
if a big number of callers check the return value and moans if some
don't.

That said. I can add a ignore_value().

> 
> But changing it (if needed) should be independent of the code motion shown
> here.
> 
> Reviewed-by: Eric Blake <eblake at redhat.com>
> 
> -- 
> Eric Blake, Principal Software Engineer
> Red Hat, Inc.           +1-919-301-3226
> Virtualization:  qemu.org | libvirt.org




More information about the libvir-list mailing list