From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 06B771FF183 for ; Wed, 3 Dec 2025 14:29:59 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 493549D96; Wed, 3 Dec 2025 14:29:59 +0100 (CET) From: Fiona Ebner To: pve-devel@lists.proxmox.com Date: Wed, 3 Dec 2025 14:26:26 +0100 Message-ID: <20251203132949.109685-1-f.ebner@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1764768548326 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.019 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [qemumigratemock.pm, qemumigrate.pm, qemu.pm, qmpclient.pm, blockjob.pm, blockdev.pm, qemuserver.pm, qsd.pm, monitor.pm, drive.pm] Subject: [pve-devel] [PATCH-SERIES qemu-server 00/18] fix #7066: api: allow live snapshot (remove) of qcow2 TPM drive with snapshot-as-volume-chain X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" The QMP commands for snapshot operations can just be passed to the qemu-storage-daemon for the FUSE-exported TPM state and it will handle it just the same as the main QEMU instance. There is a single limitation remaining. That limitation is removing the top-most snapshot live when the current image is exported via FUSE, because exporting unshares the 'resize' permission, which would be required by both 'block-commit' and 'block-stream', for example: > QEMU storage daemon 100 qsd command 'block-commit' failed - Permission > conflict on node '#block017': permissions 'resize' are both required > by node 'drive-tpmstate0' (uses node '#block017' as 'file' child) and > unshared by commit job 'commit-drive-tpmstate0' (uses node '#block017' > as 'main node' child). Most of the work is preparing the code interacting with the block layer to support different QMP peers. The first two commits are independent from the goal of the series, but tangentially related. Since this touches quite a bit of code, more testing would be very appreciated! qemu-server: Fiona Ebner (18): block job: fix variable name in documentation qmp client: add default timeouts for more block commands drive: introduce drive_uses_qsd_fuse() helper monitor: add vm_qmp_peer() helper monitor: add qsd_peer() helper blockdev: rename variable in get_node_name_below_throttle() for readability blockdev: switch get_node_name_below_throttle() to use QMP peer blockdev: switch detach() to use QMP peer blockdev: switch blockdev_replace() to use QMP peer blockdev: switch blockdev_external_snapshot() to use QMP peer block job: switch qemu_handle_concluded_blockjob() to use QMP peer block job: switch qemu_blockjobs_cancel() to use QMP peer block job: switch qemu_drive_mirror_monitor() to use QMP peer blockdev: switch blockdev_delete() to use QMP peer blockdev: switch blockdev_stream() to use QMP peer blockdev: switch blockdev_commit() to use QMP peer snapshot: support live snapshot (remove) of qcow2 TPM drive on storage with snapshot-as-volume-chain fix #7066: api: allow live snapshot (remove) of qcow2 TPM drive with snapshot-as-volume-chain src/PVE/API2/Qemu.pm | 45 +++----- src/PVE/QMPClient.pm | 7 ++ src/PVE/QemuMigrate.pm | 6 +- src/PVE/QemuServer.pm | 59 +++++----- src/PVE/QemuServer/BlockJob.pm | 58 ++++++---- src/PVE/QemuServer/Blockdev.pm | 129 ++++++++++++---------- src/PVE/QemuServer/Drive.pm | 20 ++++ src/PVE/QemuServer/Monitor.pm | 19 +++- src/PVE/QemuServer/QSD.pm | 11 +- src/PVE/VZDump/QemuServer.pm | 6 +- src/test/MigrationTest/QemuMigrateMock.pm | 2 +- 11 files changed, 208 insertions(+), 154 deletions(-) Summary over all repositories: 11 files changed, 208 insertions(+), 154 deletions(-) -- Generated by git-murpp 0.5.0 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel