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 D706D1FF09C for ; Mon, 19 Oct 2026 11:53:55 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 859B421664; Mon, 19 Oct 2026 11:53:52 +0200 (CEST) From: Thomas Ellmenreich To: pve-devel@lists.proxmox.com Subject: [PATCH qemu-server 3/5] drive: read actual size when cloning TPM drive Date: Mon, 19 Oct 2026 11:53:44 +0200 Message-ID: <20261019095346.175659-4-t.ellmenreich@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20261019095346.175659-1-t.ellmenreich@proxmox.com> References: <20261019095346.175659-1-t.ellmenreich@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1792403627652 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.442 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: PQMF6PJU2YDBAY3JYLGJVU6DPFD54D7E X-Message-ID-Hash: PQMF6PJU2YDBAY3JYLGJVU6DPFD54D7E X-MailFrom: t.ellmenreich@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: Thomas Ellmenreich 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 cloning a TPM drive, don't assume the default size of 4MiB, instead read and then use the actual size. The default size is constant, but can be changed, if the granularity of the backing storage is bigger than 4MiB. This allows TPM storages larger than 4MiB be moved to different storages without producing an error. Suggested-by: Fiona Ebner Signed-off-by: Thomas Ellmenreich --- src/PVE/QemuServer.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PVE/QemuServer.pm b/src/PVE/QemuServer.pm index 89192e9f..c93fd4c5 100644 --- a/src/PVE/QemuServer.pm +++ b/src/PVE/QemuServer.pm @@ -7876,7 +7876,7 @@ sub clone_disk { } elsif ($dst_drivename eq 'efidisk0') { $size = $efisize or die "internal error - need to specify EFI disk size\n"; } elsif ($dst_drivename eq 'tpmstate0') { - $size = PVE::QemuServer::Drive::TPMSTATE_DISK_SIZE; + $size = get_tpmstate_size($drive->{file}, $storecfg); } else { clone_disk_check_io_uring( $vmid, $drive, $storecfg, $src_storeid, $storeid, $use_drive_mirror, -- 2.47.3