[pve-devel] [PATCH qemu-server 14/23] backup: move cleanup of fleecing images to cleanup method

Fiona Ebner f.ebner at proxmox.com
Tue Jul 23 11:56:15 CEST 2024


TPM drives are already detached there and it's better to group
these things together.

Signed-off-by: Fiona Ebner <f.ebner at proxmox.com>
---
 PVE/VZDump/QemuServer.pm | 25 +++++++++----------------
 1 file changed, 9 insertions(+), 16 deletions(-)

diff --git a/PVE/VZDump/QemuServer.pm b/PVE/VZDump/QemuServer.pm
index 012c9210..b2ced154 100644
--- a/PVE/VZDump/QemuServer.pm
+++ b/PVE/VZDump/QemuServer.pm
@@ -690,7 +690,6 @@ sub archive_pbs {
 
     # get list early so we die on unkown drive types before doing anything
     my $devlist = _get_task_devlist($task);
-    my $use_fleecing;
 
     $self->enforce_vm_running_for_backup($vmid);
     $self->{qmeventd_fh} = PVE::QemuServer::register_qmeventd_handle($vmid);
@@ -721,7 +720,7 @@ sub archive_pbs {
 
 	my $is_template = PVE::QemuConfig->is_template($self->{vmlist}->{$vmid});
 
-	$use_fleecing = check_and_prepare_fleecing(
+	$task->{'use-fleecing'} = check_and_prepare_fleecing(
 	    $self, $vmid, $opts->{fleecing}, $task->{disks}, $is_template, $qemu_support);
 
 	my $fs_frozen = $self->qga_fs_freeze($task, $vmid);
@@ -735,7 +734,7 @@ sub archive_pbs {
 	    devlist => $devlist,
 	    'config-file' => $conffile,
 	};
-	$params->{fleecing} = JSON::true if $use_fleecing;
+	$params->{fleecing} = JSON::true if $task->{'use-fleecing'};
 
 	if (defined(my $ns = $scfg->{namespace})) {
 	    $params->{'backup-ns'} = $ns;
@@ -784,11 +783,6 @@ sub archive_pbs {
     }
     $self->restore_vm_power_state($vmid);
 
-    if ($use_fleecing) {
-	detach_fleecing_images($task->{disks}, $vmid);
-	cleanup_fleecing_images($self, $task->{disks});
-    }
-
     die $err if $err;
 }
 
@@ -891,7 +885,6 @@ sub archive_vma {
     }
 
     my $devlist = _get_task_devlist($task);
-    my $use_fleecing;
 
     $self->enforce_vm_running_for_backup($vmid);
     $self->{qmeventd_fh} = PVE::QemuServer::register_qmeventd_handle($vmid);
@@ -911,7 +904,7 @@ sub archive_vma {
 
 	$attach_tpmstate_drive->($self, $task, $vmid);
 
-	$use_fleecing = check_and_prepare_fleecing(
+	$task->{'use-fleecing'} = check_and_prepare_fleecing(
 	    $self, $vmid, $opts->{fleecing}, $task->{disks}, $is_template, $qemu_support);
 
 	my $outfh;
@@ -942,7 +935,7 @@ sub archive_vma {
 		devlist => $devlist
 	    };
 	    $params->{'firewall-file'} = $firewall if -e $firewall;
-	    $params->{fleecing} = JSON::true if $use_fleecing;
+	    $params->{fleecing} = JSON::true if $task->{'use-fleecing'};
 	    add_backup_performance_options($params, $opts->{performance}, $qemu_support);
 
 	    $qmpclient->queue_cmd($vmid, $backup_cb, 'backup', %$params);
@@ -984,11 +977,6 @@ sub archive_vma {
 
     $self->restore_vm_power_state($vmid);
 
-    if ($use_fleecing) {
-	detach_fleecing_images($task->{disks}, $vmid);
-	cleanup_fleecing_images($self, $task->{disks});
-    }
-
     if ($err) {
 	if ($cpid) {
 	    kill(9, $cpid);
@@ -1132,6 +1120,11 @@ sub cleanup {
 
     $detach_tpmstate_drive->($task, $vmid);
 
+    if ($task->{'use-fleecing'}) {
+	detach_fleecing_images($task->{disks}, $vmid);
+	cleanup_fleecing_images($self, $task->{disks});
+    }
+
     if ($self->{qmeventd_fh}) {
 	close($self->{qmeventd_fh});
     }
-- 
2.39.2





More information about the pve-devel mailing list