[PATCH 3/4] qemuDomainDiskControllerIsBusy: Optimize checking for SCSI hostdevs

Peter Krempa pkrempa at redhat.com
Fri Nov 13 14:58:41 UTC 2020


Iterate through hostdevs only when the controller type is
VIR_DOMAIN_CONTROLLER_TYPE_SCSI.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/qemu/qemu_hotplug.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 90ed59a0ee..124f60912f 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -5373,13 +5373,15 @@ qemuDomainDiskControllerIsBusy(virDomainObjPtr vm,
             return true;
     }

-    for (i = 0; i < vm->def->nhostdevs; i++) {
-        hostdev = vm->def->hostdevs[i];
-        if (!virHostdevIsSCSIDevice(hostdev) ||
-            detach->type != VIR_DOMAIN_CONTROLLER_TYPE_SCSI)
-            continue;
-        if (hostdev->info->addr.drive.controller == detach->idx)
-            return true;
+    if (detach->type == VIR_DOMAIN_CONTROLLER_TYPE_SCSI) {
+        for (i = 0; i < vm->def->nhostdevs; i++) {
+            hostdev = vm->def->hostdevs[i];
+            if (!virHostdevIsSCSIDevice(hostdev))
+                continue;
+
+            if (hostdev->info->addr.drive.controller == detach->idx)
+                return true;
+        }
     }

     return false;
-- 
2.28.0




More information about the libvir-list mailing list