]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: snapshot: Convert if-else switch to switch statement
authorPeter Krempa <pkrempa@redhat.com>
Fri, 18 Jul 2014 13:25:59 +0000 (15:25 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 21 Jul 2014 09:00:11 +0000 (11:00 +0200)
Convert the target snapshot state selector to a switch statement
enumerating all possible values. This points out a few mistakes in the
original selector.

The logic of the code is preserved until later patches.

src/qemu/qemu_driver.c

index 3096688fad7425f9bcfbb4ef498ec727c250ded8..7ab0f813e7859359a151c6de9285ef8d4b932b2a 100644 (file)
@@ -13922,6 +13922,8 @@ static int qemuDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
     virDomainDefPtr config = NULL;
     virQEMUDriverConfigPtr cfg = NULL;
     virCapsPtr caps = NULL;
+    bool was_running = false;
+    bool was_stopped = false;
 
     virCheckFlags(VIR_DOMAIN_SNAPSHOT_REVERT_RUNNING |
                   VIR_DOMAIN_SNAPSHOT_REVERT_PAUSED |
@@ -14022,12 +14024,10 @@ static int qemuDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
     if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0)
         goto cleanup;
 
-    if (snap->def->state == VIR_DOMAIN_RUNNING
-        || snap->def->state == VIR_DOMAIN_PAUSED) {
+    switch ((virDomainState) snap->def->state) {
+    case VIR_DOMAIN_RUNNING:
+    case VIR_DOMAIN_PAUSED:
         /* Transitions 2, 3, 5, 6, 8, 9 */
-        bool was_running = false;
-        bool was_stopped = false;
-
         /* When using the loadvm monitor command, qemu does not know
          * whether to pause or run the reverted domain, and just stays
          * in the same state as before the monitor command, whether
@@ -14153,7 +14153,16 @@ static int qemuDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
                                                  detail);
             }
         }
-    } else {
+        break;
+
+    case VIR_DOMAIN_SHUTDOWN:
+    case VIR_DOMAIN_SHUTOFF:
+    case VIR_DOMAIN_CRASHED:
+    case VIR_DOMAIN_NOSTATE:
+    case VIR_DOMAIN_BLOCKED:
+        /* XXX: The following one is clearly wrong! */
+    case VIR_DOMAIN_PMSUSPENDED:
+    case VIR_DOMAIN_LAST:
         /* Transitions 1, 4, 7 */
         /* Newer qemu -loadvm refuses to revert to the state of a snapshot
          * created by qemu-img snapshot -c.  If the domain is running, we
@@ -14217,6 +14226,7 @@ static int qemuDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
                                                   detail);
             }
         }
+        break;
     }
 
     ret = 0;