]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
qemu: Introduce flags in qemuMigrationCompleted
authorJiri Denemark <jdenemar@redhat.com>
Mon, 5 Oct 2015 12:36:15 +0000 (14:36 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Tue, 6 Oct 2015 14:15:21 +0000 (16:15 +0200)
The function already has two bool parameters and we will need to add a
new one. Let's switch to flags to make the callers readable.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
src/qemu/qemu_migration.c

index ff9491cdd2dd35f659dc778581c07a543af1d357..16723239478e42b6cfcf442f7829c15cc2055b86 100644 (file)
@@ -2618,6 +2618,11 @@ qemuMigrationCheckJobStatus(virQEMUDriverPtr driver,
 }
 
 
+enum qemuMigrationCompletedFlags {
+    QEMU_MIGRATION_COMPLETED_ABORT_ON_ERROR = (1 << 0),
+    QEMU_MIGRATION_COMPLETED_CHECK_STORAGE  = (1 << 1),
+};
+
 /**
  * Returns 1 if migration completed successfully,
  *         0 if the domain is still being migrated,
@@ -2629,8 +2634,7 @@ qemuMigrationCompleted(virQEMUDriverPtr driver,
                        virDomainObjPtr vm,
                        qemuDomainAsyncJob asyncJob,
                        virConnectPtr dconn,
-                       bool abort_on_error,
-                       bool storage)
+                       unsigned int flags)
 {
     qemuDomainObjPrivatePtr priv = vm->privateData;
     qemuDomainJobInfoPtr jobInfo = priv->job.current;
@@ -2639,10 +2643,11 @@ qemuMigrationCompleted(virQEMUDriverPtr driver,
     if (qemuMigrationCheckJobStatus(driver, vm, asyncJob) < 0)
         goto error;
 
-    if (storage && qemuMigrationDriveMirrorReady(driver, vm) < 0)
+    if (flags & QEMU_MIGRATION_COMPLETED_CHECK_STORAGE &&
+        qemuMigrationDriveMirrorReady(driver, vm) < 0)
         goto error;
 
-    if (abort_on_error &&
+    if (flags & QEMU_MIGRATION_COMPLETED_ABORT_ON_ERROR &&
         virDomainObjGetState(vm, &pauseReason) == VIR_DOMAIN_PAUSED &&
         pauseReason == VIR_DOMAIN_PAUSED_IOERROR) {
         virReportError(VIR_ERR_OPERATION_FAILED, _("%s: %s"),
@@ -2689,11 +2694,17 @@ qemuMigrationWaitForCompletion(virQEMUDriverPtr driver,
     qemuDomainObjPrivatePtr priv = vm->privateData;
     qemuDomainJobInfoPtr jobInfo = priv->job.current;
     bool events = virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_EVENT);
+    unsigned int flags = 0;
     int rv;
 
+    if (abort_on_error)
+        flags |= QEMU_MIGRATION_COMPLETED_ABORT_ON_ERROR;
+    if (storage)
+        flags |= QEMU_MIGRATION_COMPLETED_CHECK_STORAGE;
+
     jobInfo->type = VIR_DOMAIN_JOB_UNBOUNDED;
-    while ((rv = qemuMigrationCompleted(driver, vm, asyncJob, dconn,
-                                        abort_on_error, storage)) != 1) {
+    while ((rv = qemuMigrationCompleted(driver, vm, asyncJob,
+                                        dconn, flags)) != 1) {
         if (rv < 0)
             return rv;