]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virDomainCheckpointRedefineCommit: Don't check ABI of definition in checkpoint
authorPeter Krempa <pkrempa@redhat.com>
Wed, 2 Dec 2020 12:35:29 +0000 (13:35 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 4 Dec 2020 15:15:03 +0000 (16:15 +0100)
Checking the definition ABI when redefining checkpoints doesn't make
much sense for the following reasons:

* the domain definition in the checkpoint is mostly unused (a relic
  adopted from the snapshot code)

* can be very easily overridden by deleting the checkpoint metadata
  before redefinition

Rather than complicating the logic when we'll be taking into account
that the domain definition may be missing, let's just remove the check.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
src/conf/checkpoint_conf.c
src/conf/checkpoint_conf.h
src/qemu/qemu_checkpoint.c
src/test/test_driver.c

index c5d1f85ea5d6881b6d1fe9d294ae7d43922129e3..58e27c19b32909c493bb43a8486d320be14d5153 100644 (file)
@@ -530,8 +530,7 @@ virDomainCheckpointRedefinePrep(virDomainObjPtr vm,
 
 virDomainMomentObjPtr
 virDomainCheckpointRedefineCommit(virDomainObjPtr vm,
-                                  virDomainCheckpointDefPtr *defptr,
-                                  virDomainXMLOptionPtr xmlopt)
+                                  virDomainCheckpointDefPtr *defptr)
 {
     virDomainCheckpointDefPtr def = *defptr;
     virDomainMomentObjPtr other = NULL;
@@ -541,10 +540,6 @@ virDomainCheckpointRedefineCommit(virDomainObjPtr vm,
     other = virDomainCheckpointFindByName(vm->checkpoints, def->parent.name);
     if (other) {
         otherdef = virDomainCheckpointObjGetDef(other);
-        if (!virDomainDefCheckABIStability(otherdef->parent.dom,
-                                           def->parent.dom, xmlopt))
-            return NULL;
-
         /* Drop and rebuild the parent relationship, but keep all
          * child relations by reusing chk.  */
         virDomainMomentDropParent(other);
index 5997e07ff9aa91ea60095a47fded1e102c399d37..9cb5155998dbb7abc11775ac462cfec677d82a27 100644 (file)
@@ -96,7 +96,6 @@ virDomainCheckpointRedefinePrep(virDomainObjPtr vm,
 
 virDomainMomentObjPtr
 virDomainCheckpointRedefineCommit(virDomainObjPtr vm,
-                                  virDomainCheckpointDefPtr *defptr,
-                                  virDomainXMLOptionPtr xmlopt);
+                                  virDomainCheckpointDefPtr *defptr);
 
 VIR_ENUM_DECL(virDomainCheckpoint);
index e8d18b2e02c6e2e50a5d6f04869bd6d05c307b83..1740cadabf9dccb005f394e867dbe44120b41f99 100644 (file)
@@ -439,8 +439,7 @@ qemuCheckpointRedefineValidateBitmaps(virDomainObjPtr vm,
 
 
 static virDomainMomentObjPtr
-qemuCheckpointRedefine(virQEMUDriverPtr driver,
-                       virDomainObjPtr vm,
+qemuCheckpointRedefine(virDomainObjPtr vm,
                        virDomainCheckpointDefPtr *def,
                        bool *update_current,
                        bool validate_bitmaps)
@@ -452,7 +451,7 @@ qemuCheckpointRedefine(virQEMUDriverPtr driver,
         qemuCheckpointRedefineValidateBitmaps(vm, *def) < 0)
         return NULL;
 
-    return virDomainCheckpointRedefineCommit(vm, def, driver->xmlopt);
+    return virDomainCheckpointRedefineCommit(vm, def);
 }
 
 
@@ -605,7 +604,7 @@ qemuCheckpointCreateXML(virDomainPtr domain,
         return NULL;
 
     if (redefine) {
-        chk = qemuCheckpointRedefine(driver, vm, &def, &update_current, validate_bitmaps);
+        chk = qemuCheckpointRedefine(vm, &def, &update_current, validate_bitmaps);
     } else {
         chk = qemuCheckpointCreate(driver, vm, &def);
     }
index 136269de3dd263d749d4fd7d5e1df14db35f91ad..29c4c86b1db4c366dd218052df72fe0ccb336285 100644 (file)
@@ -8991,7 +8991,7 @@ testDomainCheckpointCreateXML(virDomainPtr domain,
         if (virDomainCheckpointRedefinePrep(vm, def, &update_current) < 0)
             goto cleanup;
 
-        if (!(chk = virDomainCheckpointRedefineCommit(vm, &def, privconn->xmlopt)))
+        if (!(chk = virDomainCheckpointRedefineCommit(vm, &def)))
             goto cleanup;
     } else {
         if (!(def->parent.dom = virDomainDefCopy(vm->def,