From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 9731F1FF141 for ; Fri, 13 Feb 2026 17:52:29 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7AFD7BEA2; Fri, 13 Feb 2026 17:53:14 +0100 (CET) From: Fiona Ebner To: pve-devel@lists.proxmox.com Subject: [PATCH qemu-server v3 2/4] block job: rename qemu_drive_mirror_monitor() to monitor() Date: Fri, 13 Feb 2026 17:52:54 +0100 Message-ID: <20260213165307.177055-3-f.ebner@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260213165307.177055-1-f.ebner@proxmox.com> References: <20260213165307.177055-1-f.ebner@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1771001587220 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.016 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 Message-ID-Hash: WDVELRL7VBIHPJ6EP4NLTXEM5ZVQOFID X-Message-ID-Hash: WDVELRL7VBIHPJ6EP4NLTXEM5ZVQOFID X-MailFrom: f.ebner@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 X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: The function is not only used for mirror jobs, but also stream and commit jobs. The fact that it is for block jobs is already clear from the module name. Signed-off-by: Fiona Ebner --- src/PVE/QemuMigrate.pm | 2 +- src/PVE/QemuServer.pm | 12 +++--------- src/PVE/QemuServer/BlockJob.pm | 8 +++----- src/PVE/QemuServer/Blockdev.pm | 10 ++-------- src/test/MigrationTest/QemuMigrateMock.pm | 8 ++++---- src/test/run_qemu_migrate_tests.pl | 4 ++-- 6 files changed, 15 insertions(+), 29 deletions(-) diff --git a/src/PVE/QemuMigrate.pm b/src/PVE/QemuMigrate.pm index 5ecfc5ef..f7ec3227 100644 --- a/src/PVE/QemuMigrate.pm +++ b/src/PVE/QemuMigrate.pm @@ -1558,7 +1558,7 @@ sub phase2 { # to avoid it trying to re-establish it. We are in blockjob ready state, # thus, this command changes to it to blockjob complete (see qapi docs) eval { - PVE::QemuServer::BlockJob::qemu_drive_mirror_monitor( + PVE::QemuServer::BlockJob::monitor( $vmid, undef, $self->{storage_migration_jobs}, 'cancel', ); }; diff --git a/src/PVE/QemuServer.pm b/src/PVE/QemuServer.pm index 5d2dbe03..39723c82 100644 --- a/src/PVE/QemuServer.pm +++ b/src/PVE/QemuServer.pm @@ -7294,9 +7294,7 @@ sub pbs_live_restore { } mon_cmd($vmid, 'cont'); - PVE::QemuServer::BlockJob::qemu_drive_mirror_monitor( - $vmid, undef, $jobs, 'auto', 0, 'stream', - ); + PVE::QemuServer::BlockJob::monitor($vmid, undef, $jobs, 'auto', 0, 'stream'); print "restore-drive jobs finished successfully, removing all tracking block devices" . " to disconnect from Proxmox Backup Server\n"; @@ -7415,9 +7413,7 @@ sub live_import_from_files { } mon_cmd($vmid, 'cont'); - PVE::QemuServer::BlockJob::qemu_drive_mirror_monitor( - $vmid, undef, $jobs, 'auto', 0, 'stream', - ); + PVE::QemuServer::BlockJob::monitor($vmid, undef, $jobs, 'auto', 0, 'stream'); print "restore-drive jobs finished successfully, removing all tracking block devices\n"; @@ -7925,9 +7921,7 @@ sub clone_disk { # if this is the case, we have to complete any block-jobs still there from # previous drive-mirrors if (($completion && $completion eq 'complete') && (scalar(keys %$jobs) > 0)) { - PVE::QemuServer::BlockJob::qemu_drive_mirror_monitor( - $vmid, $newvmid, $jobs, $completion, $qga, - ); + PVE::QemuServer::BlockJob::monitor($vmid, $newvmid, $jobs, $completion, $qga); } goto no_data_clone; } diff --git a/src/PVE/QemuServer/BlockJob.pm b/src/PVE/QemuServer/BlockJob.pm index 0b22765b..02e21146 100644 --- a/src/PVE/QemuServer/BlockJob.pm +++ b/src/PVE/QemuServer/BlockJob.pm @@ -83,7 +83,7 @@ sub qemu_blockjobs_cancel { # 'cancel': wait until all jobs are ready, block-job-cancel them # 'skip': wait until all jobs are ready, return with block jobs in ready state # 'auto': wait until all jobs disappear, only use for jobs which complete automatically -sub qemu_drive_mirror_monitor { +sub monitor { my ($vmid, $vmiddst, $jobs, $completion, $qga, $op) = @_; $completion //= 'complete'; @@ -310,7 +310,7 @@ sub qemu_drive_mirror { die "mirroring error: $err\n"; } - qemu_drive_mirror_monitor($vmid, $vmiddst, $jobs, $completion, $qga); + monitor($vmid, $vmiddst, $jobs, $completion, $qga); } # Callers should version guard this (only available with a binary >= QEMU 8.2) @@ -506,9 +506,7 @@ sub blockdev_mirror { log_warn("unable to delete blockdev '$target_node_name' - $@"); die "error starting blockdev mirrror - $err"; } - qemu_drive_mirror_monitor( - $vmid, $dest->{vmid}, $jobs, $completion, $options->{'guest-agent'}, 'mirror', - ); + monitor($vmid, $dest->{vmid}, $jobs, $completion, $options->{'guest-agent'}, 'mirror'); } sub mirror { diff --git a/src/PVE/QemuServer/Blockdev.pm b/src/PVE/QemuServer/Blockdev.pm index 8eb01b45..be9f588a 100644 --- a/src/PVE/QemuServer/Blockdev.pm +++ b/src/PVE/QemuServer/Blockdev.pm @@ -1086,9 +1086,7 @@ sub blockdev_commit { my $complete = $src_snap && $src_snap ne 'current' ? 'auto' : 'complete'; eval { - PVE::QemuServer::BlockJob::qemu_drive_mirror_monitor( - $vmid, undef, $jobs, $complete, 0, 'commit', - ); + PVE::QemuServer::BlockJob::monitor($vmid, undef, $jobs, $complete, 0, 'commit'); }; if ($@) { die "Failed to complete block commit: $@\n"; @@ -1166,11 +1164,7 @@ sub blockdev_stream { mon_cmd($vmid, 'block-stream', %$options); $jobs->{$job_id} = {}; - eval { - PVE::QemuServer::BlockJob::qemu_drive_mirror_monitor( - $vmid, undef, $jobs, 'auto', 0, 'stream', - ); - }; + eval { PVE::QemuServer::BlockJob::monitor($vmid, undef, $jobs, 'auto', 0, 'stream'); }; if ($@) { die "Failed to complete block stream: $@\n"; } diff --git a/src/test/MigrationTest/QemuMigrateMock.pm b/src/test/MigrationTest/QemuMigrateMock.pm index 421f0bb7..8cd2da12 100644 --- a/src/test/MigrationTest/QemuMigrateMock.pm +++ b/src/test/MigrationTest/QemuMigrateMock.pm @@ -175,14 +175,14 @@ $qemu_server_blockjob_module->mock( common_mirror_mock($source->{vmid}, $drive_id); }, - qemu_drive_mirror_monitor => sub { + monitor => sub { my ($vmid, $vmiddst, $jobs, $completion, $qga) = @_; if ( - $fail_config->{qemu_drive_mirror_monitor} - && $fail_config->{qemu_drive_mirror_monitor} eq $completion + $fail_config->{block_job_monitor} + && $fail_config->{block_job_monitor} eq $completion ) { - die "qemu_drive_mirror_monitor '$completion' error\n"; + die "block_job_monitor '$completion' error\n"; } return; }, diff --git a/src/test/run_qemu_migrate_tests.pl b/src/test/run_qemu_migrate_tests.pl index ed2f38ee..05eed1d9 100755 --- a/src/test/run_qemu_migrate_tests.pl +++ b/src/test/run_qemu_migrate_tests.pl @@ -1596,10 +1596,10 @@ my $tests = [ unused0 => 'local-dir:149/vm-149-disk-0.qcow2', }, expected_calls => {}, - expect_die => "qemu_drive_mirror_monitor 'cancel' error", + expect_die => "block_job_monitor 'cancel' error", # note that 'cancel' is also used to finish and that's what this test is about fail_config => { - 'qemu_drive_mirror_monitor' => 'cancel', + 'block_job_monitor' => 'cancel', }, expected => { source_volids => local_volids_for_vm(149), -- 2.47.3