[PATCH v4 qemu-server 04/11] blockdev: vm_devices_list : fix block-query

Alexandre Derumier alexandre.derumier at groupe-cyllene.com
Tue Mar 11 11:28:56 CET 2025


Look at qdev value, as cdrom drives can be empty
without any inserted media

Signed-off-by: Alexandre Derumier <alexandre.derumier at groupe-cyllene.com>
---
 PVE/QemuServer.pm | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index faa17edb..5ccc026a 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -3937,11 +3937,12 @@ sub vm_devices_list {
 	$devices_to_check = $to_check;
     }
 
+    #block devices need to be queried at qdev level, as a device
+    #don't always have a blockdev drive media attached (cdrom for example)
     my $resblock = mon_cmd($vmid, 'query-block');
-    foreach my $block (@$resblock) {
-	if($block->{device} =~ m/^drive-(\S+)/){
-		$devices->{$1} = 1;
-	}
+    $resblock = { map { $_->{qdev} => $_ } $resblock->@* };
+    foreach my $blockid (keys %$resblock) {
+	$devices->{$blockid} = 1;
     }
 
     my $resmice = mon_cmd($vmid, 'query-mice');
-- 
2.39.5




More information about the pve-devel mailing list