[PATCH 2/2] virDomainCheckpointRedefinePrep: Set 'current' checkpoint if there isn't any
Eric Blake
eblake at redhat.com
Wed Apr 1 14:26:43 UTC 2020
On 4/1/20 8:10 AM, Peter Krempa wrote:
> When redefining checkpoints from scratch we'd not set the 'current'
> checkpoint if there wasn't any. This meant that the code wasn't ever
> able to set a 'current' checkpoint as any other one looks up if the
> parent of the redefined checkpoint is current.
>
> Since the backup code then requires the current checkpoint to start the
> lookup we'd not be able to perform a backup after restoring the
> checkpoint hierarchy.
>
> Reported-by: Eyal Shenitzky <eshenitz at redhat.com>
> Signed-off-by: Peter Krempa <pkrempa at redhat.com>
> ---
> src/conf/checkpoint_conf.c | 4 ++++
> 1 file changed, 4 insertions(+)
Reviewed-by: Eric Blake <eblake at redhat.com>
>
> diff --git a/src/conf/checkpoint_conf.c b/src/conf/checkpoint_conf.c
> index 26bcfc16b7..d557fada49 100644
> --- a/src/conf/checkpoint_conf.c
> +++ b/src/conf/checkpoint_conf.c
> @@ -550,6 +550,10 @@ virDomainCheckpointRedefinePrep(virDomainObjPtr vm,
> *update_current = true;
> }
>
> + /* set the first redefined checkpoint as current */
> + if (virDomainCheckpointGetCurrent(vm->checkpoints) == NULL)
> + *update_current = true;
> +
> other = virDomainCheckpointFindByName(vm->checkpoints, def->parent.name);
> if (other) {
> otherdef = virDomainCheckpointObjGetDef(other);
>
--
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