From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id BAD301FF0B7 for ; Fri, 16 Oct 2026 14:27:06 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 7651E215ED; Fri, 16 Oct 2026 14:26:52 +0200 (CEST) From: Erik Fastermann To: pve-devel@lists.proxmox.com Subject: [PATCH qemu-server v3 2/6] drive: fix conversion of bps throttle limits to mbps Date: Fri, 16 Oct 2026 14:25:58 +0200 Message-ID: <20261016122602.183911-3-e.fastermann@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20261016122602.183911-1-e.fastermann@proxmox.com> References: <20261016122602.183911-1-e.fastermann@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1792153608748 X-SPAM-LEVEL: Spam detection results: 0 AWL 1.652 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: 7N2BNTMLJEJAZANB2A22QL6RTR4VD5JL X-Message-ID-Hash: 7N2BNTMLJEJAZANB2A22QL6RTR4VD5JL X-MailFrom: e.fastermann@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Erik Fastermann X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: When translating the bps, bps_rd and bps_wr options to their mbps counterparts, parse_drive stored the result of defined() instead of the value itself. Any limit set this way thus became 0 mbps, which QEMU treats as unlimited, so the limit was silently ignored. The web UI only uses the mbps options, so only users setting the bps options via the API or CLI are affected. Signed-off-by: Erik Fastermann --- src/PVE/QemuServer/Drive.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PVE/QemuServer/Drive.pm b/src/PVE/QemuServer/Drive.pm index 0b573717..bccf0371 100644 --- a/src/PVE/QemuServer/Drive.pm +++ b/src/PVE/QemuServer/Drive.pm @@ -867,7 +867,7 @@ sub parse_drive { my $error = 0; foreach my $opt (qw(bps bps_rd bps_wr)) { - if (my $bps = defined(delete $res->{$opt})) { + if (defined(my $bps = delete $res->{$opt})) { if (defined($res->{"m$opt"})) { warn "both $opt and m$opt specified\n"; ++$error; -- 2.47.3