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