[PATCH 3/3] qemuSnapshotCreate: Don't insert snapshot into list with VIR_DOMAIN_SNAPSHOT_CREATE_NO_METADATA

Michal Prívozník mprivozn at redhat.com
Tue Jan 11 14:53:22 UTC 2022


On 1/11/22 10:53, Peter Krempa wrote:
> Our approach to snapshots without metadata was to insert them to the
> snapshot list and then later remove them from the list when the flag is
> present.
> 
> This quirky logic was broken in a recent refactor of the snapshot code
> causing that the snapshot stayed inserted in the snapshot list.
> 
> Recent refactor of the snapshot code didn't faithfully relocate this
> logic to the new function.
> 
> Rather than attempting to restore the quirky logic of adding and then
> removing the object, don't add the snapshot into the list at all when
> the user doesn't want metadata.
> 
> We achieve this by creating a temporary 'virDomainMomentObj' wrapper
> which is not inserted into the list and using that instead of calling
> virDomainSnapshotAssignDef.
> 
> Fixes: 9bad0fb809b
> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2039131
> Signed-off-by: Peter Krempa <pkrempa at redhat.com>
> ---
>  src/qemu/qemu_snapshot.c | 25 +++++++++++++++----------
>  1 file changed, 15 insertions(+), 10 deletions(-)
> 
> diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c
> index 9a5d3e60aa..e9fc9051c1 100644
> --- a/src/qemu/qemu_snapshot.c
> +++ b/src/qemu/qemu_snapshot.c
> @@ -1756,7 +1756,7 @@ qemuSnapshotCreate(virDomainObj *vm,
>                     virQEMUDriverConfig *cfg,
>                     unsigned int flags)
>  {
> -
> +    g_autoptr(virDomainMomentObj) noMetadataSnap = NULL;

Nitpick, this variable is used as a bool later, which creates double
negative conditions like !noMetadataSnap. But I'm failing to suggest
anything better.

Michal




More information about the libvir-list mailing list