The local one is specific for `allocate_fleecing_images` and has a
comment stating to use the one from `PVE::QemuConfig` in all other
cases.

The `cleanup` sub already called this, but only if the VM was running.
We do allocate fleecing images for previously-stopped VMs as well,
though, so we also need to do the cleanup.

As for the `detach_fleecing_images()` call: while could have stayed in
the `vm_running_locall()` branch, it also performs this check and this
way the entire fleecing cleanup stays together in one place.

Signed-off-by: Wolfgang Bumiller <w.bumil...@proxmox.com>
---
 PVE/VZDump/QemuServer.pm | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/PVE/VZDump/QemuServer.pm b/PVE/VZDump/QemuServer.pm
index 4860798e..10514f75 100644
--- a/PVE/VZDump/QemuServer.pm
+++ b/PVE/VZDump/QemuServer.pm
@@ -1267,15 +1267,17 @@ sub cleanup {
        }
 
        $detach_tpmstate_drive->($task, $vmid);
-       if ($task->{'use-fleecing'}) {
+    }
+
+    if ($task->{'use-fleecing'}) {
+       eval {
            detach_fleecing_images($task->{disks}, $vmid);
            PVE::QemuConfig::cleanup_fleecing_images(
                $vmid, $self->{storecfg}, sub { $self->log($_[0], $_[1]); });
-       }
+       };
+       $self->log('warn', "attempt to clean up fleecing images failed - $@") 
if $@;
     }
 
-    cleanup_fleecing_images($self, $task->{disks}) if $task->{'use-fleecing'};
-
     if ($self->{qmeventd_fh}) {
        close($self->{qmeventd_fh});
     }
-- 
2.39.5



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to