]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: Don't reuse variable for different object in virDomainCheckpointRedefinePrep
authorPeter Krempa <pkrempa@redhat.com>
Tue, 1 Oct 2019 06:00:26 +0000 (08:00 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 24 Oct 2019 17:35:34 +0000 (19:35 +0200)
The 'other' variable was used to store the parent of the redefined
checkpoint and then the existing version of the currently redefined
checkpoint. Make it less confusing by adding a 'parent' variable for the
first case.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/checkpoint_conf.c

index 90cb565d70f9b19c26576682c9f478f53c261386..62ec9ced41bca4c0686a467e47e7f13740ed40a2 100644 (file)
@@ -534,6 +534,7 @@ virDomainCheckpointRedefinePrep(virDomainObjPtr vm,
 {
     virDomainCheckpointDefPtr def = *defptr;
     char uuidstr[VIR_UUID_STRING_BUFLEN];
+    virDomainMomentObjPtr parent = NULL;
     virDomainMomentObjPtr other = NULL;
     virDomainCheckpointDefPtr otherdef = NULL;
 
@@ -552,12 +553,13 @@ virDomainCheckpointRedefinePrep(virDomainObjPtr vm,
     if (virDomainCheckpointAlignDisks(def) < 0)
         return -1;
 
-    if (def->parent.parent_name)
-        other = virDomainCheckpointFindByName(vm->checkpoints,
-                                              def->parent.parent_name);
-    if (other == virDomainCheckpointGetCurrent(vm->checkpoints)) {
-        *update_current = true;
-        virDomainCheckpointSetCurrent(vm->checkpoints, NULL);
+    if (def->parent.parent_name &&
+         (parent = virDomainCheckpointFindByName(vm->checkpoints,
+                                                 def->parent.parent_name))) {
+        if (parent == virDomainCheckpointGetCurrent(vm->checkpoints)) {
+            *update_current = true;
+            virDomainCheckpointSetCurrent(vm->checkpoints, NULL);
+        }
     }
 
     other = virDomainCheckpointFindByName(vm->checkpoints, def->parent.name);