From c4a54ed5f15a5513e2321a54e651fd374976eeda Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fabian=20Gr=C3=BCnbichler?= Date: Mon, 4 Jul 2016 13:04:14 +0200 Subject: [PATCH] fix 1046: add non-snapshotted disks as unused --- PVE/QemuConfig.pm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/PVE/QemuConfig.pm b/PVE/QemuConfig.pm index c9c5e608..3ce95ac8 100644 --- a/PVE/QemuConfig.pm +++ b/PVE/QemuConfig.pm @@ -264,6 +264,35 @@ sub __snapshot_rollback_vm_start { PVE::QemuServer::vm_start($storecfg, $vmid, $statefile, undef, undef, undef, $forcemachine); } +sub __snapshot_rollback_get_unused { + my ($class, $conf, $snap) = @_; + + my $unused = []; + + $class->__snapshot_foreach_volume($conf, sub { + my ($vs, $volume) = @_; + + return if PVE::QemuServer::drive_is_cdrom($volume); + + my $found = 0; + my $volid = $volume->{file}; + + $class->__snapshot_foreach_volume($snap, sub { + my ($ds, $drive) = @_; + + return if $found; + return if PVE::QemuServer::drive_is_cdrom($drive); + + $found = 1 + if ($drive->{file} && $drive->{file} eq $volid); + }); + + push @$unused, $volid if !$found; + }); + + return $unused; +} + sub __snapshot_foreach_volume { my ($class, $conf, $func) = @_; -- 2.39.5