]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemuMigrationCookieAddNBD: Move monitor call out of the loop
authorPeter Krempa <pkrempa@redhat.com>
Thu, 30 Jan 2020 13:57:56 +0000 (14:57 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 31 Jan 2020 13:28:29 +0000 (14:28 +0100)
The data is gathered only once so we can move the whole block which
fetches the data out of the loop and get rid of the logic which
prevents multiple calls.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/qemu/qemu_migration_cookie.c

index 1c3de139834ddef91177f7394e650c408bae6efa..33ab6cb7a5877d0eeab1dfa3de786779f14d67ad 100644 (file)
@@ -472,24 +472,19 @@ qemuMigrationCookieAddNBD(qemuMigrationCookiePtr mig,
     mig->nbd->disks = g_new0(struct qemuMigrationCookieNBDDisk, vm->def->ndisks);
     mig->nbd->ndisks = 0;
 
+    if (!(stats = virHashCreate(10, virHashValueFree)))
+        goto cleanup;
+
+    if (qemuDomainObjEnterMonitorAsync(driver, vm, priv->job.asyncJob) < 0)
+        goto cleanup;
+    rc = qemuMonitorBlockStatsUpdateCapacity(priv->mon, stats, false);
+    if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0)
+        goto cleanup;
+
     for (i = 0; i < vm->def->ndisks; i++) {
         virDomainDiskDefPtr disk = vm->def->disks[i];
         qemuBlockStats *entry;
 
-        if (!stats) {
-            if (!(stats = virHashCreate(10, virHashValueFree)))
-                goto cleanup;
-
-            if (qemuDomainObjEnterMonitorAsync(driver, vm,
-                                               priv->job.asyncJob) < 0)
-                goto cleanup;
-            rc = qemuMonitorBlockStatsUpdateCapacity(priv->mon, stats, false);
-            if (qemuDomainObjExitMonitor(driver, vm) < 0)
-                goto cleanup;
-            if (rc < 0)
-                goto cleanup;
-        }
-
         if (!disk->info.alias ||
             !(entry = virHashLookup(stats, disk->info.alias)))
             continue;