[libvirt] [PATCH RFC 15/40] qemu: checkpoint: Fix rollback and access to unlocked 'vm' when deleting checkpoints

Eric Blake eblake at redhat.com
Fri Oct 18 22:29:49 UTC 2019


On 10/18/19 11:11 AM, Peter Krempa wrote:
> Delete/merge bitmaps when deleting checkpoints using a 'transaction' so
> that we don't have to deal with halfway-failed scenarios and also fix
> access to 'vm' while in the monitor lock.
> 
> Signed-off-by: Peter Krempa <pkrempa at redhat.com>
> ---
>   src/qemu/qemu_checkpoint.c | 47 +++++++++++++++++++-------------------
>   1 file changed, 24 insertions(+), 23 deletions(-)
> 

> -            if (qemuMonitorDeleteBitmap(priv->mon, node, disk->bitmap) < 0) {
> -                success = false;
> -                break;
> -            }
> +
> +            if (qemuMonitorTransactionBitmapRemove(actions, node, disk->bitmap) < 0)
> +                return -1;

Transactional bitmap remove depends on a newer qemu than what the 
pre-patch state required; is this properly gated on capabilities so that 
you can't get in a scenario where you can create bitmaps but not delete 
them?

Otherwise, the conversion makes sense.

-- 
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