[pve-devel] [PATCH qemu-server 1/2] fix #1040: warn early about moving a snapshotted disk
Fabian Grünbichler
f.gruenbichler at proxmox.com
Fri Jul 1 14:18:31 CEST 2016
die if "delete source disk" is enabled, because a disk that
is referenced by snapshots must not be deleted.
---
PVE/API2/Qemu.pm | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index c0a72c0..6a1a459 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -2525,6 +2525,11 @@ __PACKAGE__->register_method({
die "you can't move on the same storage with same format\n" if $oldstoreid eq $storeid &&
(!$format || !$oldfmt || $oldfmt eq $format);
+ # this only checks snapshots because $disk is passed!
+ my $snapshotted = PVE::QemuServer::is_volume_in_use($storecfg, $conf, $disk, $old_volid);
+ die "you can't move a disk with snapshots and delete the source\n"
+ if $snapshotted && $param->{delete};
+
PVE::Cluster::log_msg('info', $authuser, "move disk VM $vmid: move --disk $disk --storage $storeid");
my $running = PVE::QemuServer::check_running($vmid);
@@ -2538,6 +2543,9 @@ __PACKAGE__->register_method({
eval {
local $SIG{INT} = $SIG{TERM} = $SIG{QUIT} = $SIG{HUP} = sub { die "interrupted by signal\n"; };
+ warn "moving disk with snapshots, snapshots will not be moved!\n"
+ if $snapshotted;
+
my $newdrive = PVE::QemuServer::clone_disk($storecfg, $vmid, $running, $disk, $drive, undef,
$vmid, $storeid, $format, 1, $newvollist);
--
2.1.4
More information about the pve-devel
mailing list