--- Begin Message ---fixme/testme : PVE/VZDump/QemuServer.pm: eval { PVE::QemuServer::qemu_drivedel($vmid, "tpmstate0-backup"); };Signed-off-by: Alexandre Derumier <[email protected]> --- PVE/QemuServer.pm | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 5fd155e5..9ad12186 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -4144,32 +4144,25 @@ sub qemu_iothread_del { } sub qemu_driveadd { - my ($storecfg, $vmid, $device) = @_; + my ($storecfg, $vmid, $drive) = @_; - my $kvmver = get_running_qemu_version($vmid); - my $io_uring = min_version($kvmver, 6, 0); - my $drive = print_drive_commandline_full($storecfg, $vmid, $device, undef, $io_uring); - $drive =~ s/\\/\\\\/g; - my $ret = PVE::QemuServer::Monitor::hmp_cmd($vmid, "drive_add auto \"$drive\"", 60); + my $drive_id = get_drive_id($drive); + # always add a throttle-group, as it's mandatory for the throttle-filter root node. + my $throttle_group = generate_throttle_group($drive); + mon_cmd($vmid, 'object-add', "qom-type" => "throttle-group", %$throttle_group); - # If the command succeeds qemu prints: "OK" - return 1 if $ret =~ m/OK/s; - - die "adding drive failed: $ret\n"; + # The throttle filter is the root node with a stable name attached to the device, + # and currently it's not possible to insert it later + my $blockdev = generate_drive_blockdev($storecfg, $vmid, $drive); + mon_cmd($vmid, 'blockdev-add', %$blockdev, timeout => 10 * 60); + return 1; } sub qemu_drivedel { my ($vmid, $deviceid) = @_; - my $ret = PVE::QemuServer::Monitor::hmp_cmd($vmid, "drive_del drive-$deviceid", 10 * 60); - $ret =~ s/^\s+//; - - return 1 if $ret eq ""; - - # NB: device not found errors mean the drive was auto-deleted and we ignore the error - return 1 if $ret =~ m/Device \'.*?\' not found/s; - - die "deleting drive $deviceid failed : $ret\n"; + mon_cmd($vmid, 'blockdev-del', 'node-name' => "drive-$deviceid", timeout => 10 * 60); + mon_cmd($vmid, 'object-del', id => "throttle-drive-$deviceid"); } sub qemu_deviceaddverify { @@ -4404,7 +4397,7 @@ sub qemu_block_set_io_throttle { return if !check_running($vmid) ; - mon_cmd($vmid, "block_set_io_throttle", device => $deviceid, + mon_cmd($vmid, "block_set_io_throttle", id => $deviceid, bps => int($bps), bps_rd => int($bps_rd), bps_wr => int($bps_wr), -- 2.39.5
--- End Message ---
_______________________________________________ pve-devel mailing list [email protected] https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
