[pve-devel] [PATCH] move_disk : don't delete disk if used in a previous snasphot v2

Alexandre Derumier aderumier at odiso.com
Mon Apr 14 13:52:23 CEST 2014


and set it as unused

Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
 PVE/API2/Qemu.pm |   12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index 009f0a1..696887f 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -2406,8 +2406,16 @@ __PACKAGE__->register_method({
                 }
 
 		if ($param->{delete}) {
-		    eval { PVE::Storage::vdisk_free($storecfg, $old_volid); };
-		    warn $@ if $@;
+                    my $used_paths = PVE::QemuServer::get_used_paths($vmid, $storecfg, $conf, 1, 1);
+                    my $path = PVE::Storage::path($storecfg, $old_volid);
+		    if ($used_paths->{$path}){
+			warn "volume $old_volid have snapshots. Can't delete it";
+			PVE::QemuServer::add_unused_volume($conf, $old_volid);
+			PVE::QemuServer::update_config_nolock($vmid, $conf, 1);
+		    } else {
+			eval { PVE::Storage::vdisk_free($storecfg, $old_volid); };
+			warn $@ if $@;
+		    }
 		}
 	    };
 
-- 
1.7.10.4




More information about the pve-devel mailing list