]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
qemu: migration: Refactor hostdev validation in migration check
authorPeter Krempa <pkrempa@redhat.com>
Wed, 22 Apr 2015 09:41:22 +0000 (11:41 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 22 Apr 2015 12:05:50 +0000 (14:05 +0200)
The hostdev check can error out right away.

src/qemu/qemu_migration.c

index 93443822867ee5251b00f4430981c6431af2247b..1da687c0cf8a79851d061cbcdb9bec9281843351 100644 (file)
@@ -1951,7 +1951,6 @@ qemuMigrationIsAllowed(virQEMUDriverPtr driver, virDomainObjPtr vm,
 {
     int nsnapshots;
     int pauseReason;
-    bool forbid;
     size_t i;
 
     if (vm) {
@@ -1995,22 +1994,16 @@ qemuMigrationIsAllowed(virQEMUDriverPtr driver, virDomainObjPtr vm,
     }
 
     /* Migration with USB host devices is allowed, all other devices are
-     * forbidden.
-     */
-    forbid = false;
+     * forbidden. */
     for (i = 0; i < def->nhostdevs; i++) {
         virDomainHostdevDefPtr hostdev = def->hostdevs[i];
         if (hostdev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS ||
             hostdev->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB) {
-            forbid = true;
-            break;
+            virReportError(VIR_ERR_OPERATION_INVALID, "%s",
+                           _("domain has assigned non-USB host devices"));
+            return false;
         }
     }
-    if (forbid) {
-        virReportError(VIR_ERR_OPERATION_INVALID, "%s",
-                       _("domain has assigned non-USB host devices"));
-        return false;
-    }
 
     if (def->cpu && def->cpu->mode != VIR_CPU_MODE_HOST_PASSTHROUGH) {
         for (i = 0; i < def->cpu->nfeatures; i++) {