]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: process: Move clearing of the BLOCKDEV capability to qemuProcessPrepareQEMUCaps
authorPeter Krempa <pkrempa@redhat.com>
Sun, 24 Nov 2019 08:23:54 +0000 (09:23 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 3 Dec 2019 14:26:54 +0000 (15:26 +0100)
Start aggregating all capability post-processing code in one place.

The comment was modified while moving it as it was mentioning floppies
which are no longer clearing the blockdev capability.

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

index e85b33a2796883a5cd8c27f9f6e1953c790655f5..921ad82c5d7feb48d5a2e6578166990086028f0a 100644 (file)
@@ -5502,6 +5502,7 @@ qemuProcessPrepareQEMUCaps(virDomainObjPtr vm,
                            virFileCachePtr qemuCapsCache)
 {
     qemuDomainObjPrivatePtr priv = vm->privateData;
+    size_t i;
 
     virObjectUnref(priv->qemuCaps);
     if (!(priv->qemuCaps = virQEMUCapsCacheLookupCopy(qemuCapsCache,
@@ -5510,6 +5511,14 @@ qemuProcessPrepareQEMUCaps(virDomainObjPtr vm,
                                                       vm->def->os.machine)))
         return -1;
 
+    /* clear the 'blockdev' capability for VMs which have disks that need -drive */
+    for (i = 0; i < vm->def->ndisks; i++) {
+        if (qemuDiskBusNeedsDriveArg(vm->def->disks[i]->bus)) {
+            virQEMUCapsClear(priv->qemuCaps, QEMU_CAPS_BLOCKDEV);
+            break;
+        }
+    }
+
     return 0;
 }
 
@@ -6273,15 +6282,6 @@ qemuProcessPrepareDomain(virQEMUDriverPtr driver,
 
     qemuProcessPrepareAllowReboot(vm);
 
-    /* clear the 'blockdev' capability for VMs which have disks that need
-     * -drive or which have floppies where we can't reliably get the QOM path */
-    for (i = 0; i < vm->def->ndisks; i++) {
-        if (qemuDiskBusNeedsDriveArg(vm->def->disks[i]->bus)) {
-            virQEMUCapsClear(priv->qemuCaps, QEMU_CAPS_BLOCKDEV);
-            break;
-        }
-    }
-
     /*
      * Normally PCI addresses are assigned in the virDomainCreate
      * or virDomainDefine methods. We might still need to assign