[PATCH v3 qemu-server 08/10] convert disk controller device to json format

Alexandre Derumier alexandre.derumier at groupe-cyllene.com
Fri Aug 22 16:18:00 CEST 2025


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

diff --git a/src/PVE/QemuServer.pm b/src/PVE/QemuServer.pm
index 5dec2f23..ecbbd13c 100644
--- a/src/PVE/QemuServer.pm
+++ b/src/PVE/QemuServer.pm
@@ -72,7 +72,7 @@ use PVE::QemuServer::Drive qw(
     storage_allows_io_uring_default
 );
 use PVE::QemuServer::DriveDevice
-    qw(print_drivedevice_controller get_drivedevice get_drivedevice_iothread scsihw_infos);
+    qw(get_drivedevice_controller get_drivedevice get_drivedevice_iothread scsihw_infos);
 use PVE::QemuServer::Machine;
 use PVE::QemuServer::Memory qw(get_current_memory);
 use PVE::QemuServer::MetaInfo;
@@ -3567,10 +3567,11 @@ sub config_to_command {
             my $iothread = get_drivedevice_iothread($conf, $drive);
             push @$cmd, '-object', to_json($iothread, { canonical => 1 }) if $iothread;
 
-            my $controller = print_drivedevice_controller(
+            my $drive_controller = get_drivedevice_controller(
                 $conf, $drive, $scsihw, $arch, $bridges, $used_controller,
             );
-            push @$devices, '-device', $controller if $controller;
+            push @$devices, '-device', to_json($drive_controller, { canonical => 1 })
+                if $drive_controller;
 
             my $live_restore = $live_restore_backing->{$ds};
 
@@ -3852,10 +3853,10 @@ sub vm_deviceplug {
     } elsif ($deviceid =~ m/^(virtioscsi|scsihw)(\d+)$/) {
         my $scsihw = defined($conf->{scsihw}) ? $conf->{scsihw} : "lsi";
         my $iothread = get_drivedevice_iothread($conf, $device);
-        my $controller = print_drivedevice_controller($conf, $device, $scsihw, $arch);
+        my $controller = get_drivedevice_controller($conf, $device, $scsihw, $arch);
 
         qemu_iothread_add($vmid, $deviceid, $device) if $iothread;
-        qemu_deviceadd($vmid, $controller);
+        qmp_deviceadd($vmid, $controller);
         qemu_deviceaddverify($vmid, $deviceid);
     } elsif ($deviceid =~ m/^(scsi)(\d+)$/) {
         qemu_findorcreatescsihw($storecfg, $conf, $vmid, $device, $arch, $machine_type);
@@ -3937,7 +3938,7 @@ sub vm_deviceunplug {
         qemu_drivedel($vmid, $deviceid);
         qemu_iothread_del($vmid, $deviceid, $device);
     } elsif ($deviceid =~ m/^(virtioscsi|scsihw)(\d+)$/) {
-        qemu_devicedel($vmid, $deviceid);
+        qmp_devicedel($vmid, $deviceid);
         qemu_devicedelverify($vmid, $deviceid, 15);
     } elsif ($deviceid =~ m/^(scsi)(\d+)$/) {
         my $device = parse_drive($deviceid, $conf->{$deviceid});
-- 
2.47.2




More information about the pve-devel mailing list