With --destroy-unreferenced-disks 0 they were not removed yet, but no use in keeping them around.
Signed-off-by: Fabian Ebner <f.eb...@proxmox.com> --- PVE/QemuServer.pm | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 1a46732..1af2b53 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -2140,8 +2140,7 @@ sub destroy_vm { }); } - # only remove disks owned by this VM (referenced in the config) - PVE::QemuConfig->foreach_volume_full($conf, { include_unused => 1 }, sub { + my $remove_owned_drive = sub { my ($ds, $drive) = @_; return if drive_is_cdrom($drive, 1); @@ -2153,7 +2152,21 @@ sub destroy_vm { eval { PVE::Storage::vdisk_free($storecfg, $volid) }; warn "Could not remove disk '$volid', check manually: $@" if $@; - }); + }; + + # only remove disks owned by this VM (referenced in the config) + my $include_opts = { + include_unused => 1, + extra_keys => ['vmstate'], + }; + PVE::QemuConfig->foreach_volume_full($conf, $include_opts, $remove_owned_drive); + + for my $snap (values %{$conf->{snapshots}}) { + next if !defined($snap->{vmstate}); + my $drive = PVE::QemuConfig->parse_volume('vmstate', $snap->{vmstate}, 1); + next if !defined($drive); + $remove_owned_drive->('vmstate', $drive); + } if ($purge_unreferenced) { # also remove unreferenced disk my $vmdisks = PVE::Storage::vdisk_list($storecfg, undef, $vmid, undef, 'images'); -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel