From af9110ddd7e4418425d6b49717c38d22b466bbc8 Mon Sep 17 00:00:00 2001 From: Wolfgang Link Date: Wed, 3 Dec 2014 15:40:33 +0100 Subject: [PATCH] Fix in PVE::QemuServer::snapshot_create remove the freezefs flag. If Qemu Guest Agent flag is set in config the vm filesystem will always be frozen, unless we save RAM. also remove param freezefs in PVE::API2 snapshot, because there is no use for it. Signed-off-by: Wolfgang Link Signed-off-by: Dietmar Maurer --- PVE/API2/Qemu.pm | 9 ++------- PVE/QemuServer.pm | 19 +++++++++++-------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm index 0787074d..066726dc 100644 --- a/PVE/API2/Qemu.pm +++ b/PVE/API2/Qemu.pm @@ -2853,11 +2853,6 @@ __PACKAGE__->register_method({ type => 'boolean', description => "Save the vmstate", }, - freezefs => { - optional => 1, - type => 'boolean', - description => "Freeze the filesystem", - }, description => { optional => 1, type => 'string', @@ -2887,8 +2882,8 @@ __PACKAGE__->register_method({ my $realcmd = sub { PVE::Cluster::log_msg('info', $authuser, "snapshot VM $vmid: $snapname"); - PVE::QemuServer::snapshot_create($vmid, $snapname, $param->{vmstate}, - $param->{freezefs}, $param->{description}); + PVE::QemuServer::snapshot_create($vmid, $snapname, $param->{vmstate}, + $param->{description}); }; return $rpcenv->fork_worker('qmsnapshot', $vmid, $authuser, $realcmd); diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index eb15f9cf..5a409445 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -4876,19 +4876,22 @@ my $savevm_wait = sub { }; sub snapshot_create { - my ($vmid, $snapname, $save_vmstate, $freezefs, $comment) = @_; + my ($vmid, $snapname, $save_vmstate, $comment) = @_; my $snap = &$snapshot_prepare($vmid, $snapname, $save_vmstate, $comment); - $freezefs = $save_vmstate = 0 if !$snap->{vmstate}; # vm is not running - - my $drivehash = {}; - - my $running = check_running($vmid); + $save_vmstate = 0 if !$snap->{vmstate}; # vm is not running my $config = load_config($vmid); - if ($running && $freezefs && $config->{agent}) { + my $running = check_running($vmid); + + my $freezefs = $running && $config->{agent}; + $freezefs = 0 if $snap->{vmstate}; # not needed if we save RAM + + my $drivehash = {}; + + if ($freezefs) { eval { vm_mon_cmd($vmid, "guest-fsfreeze-freeze"); }; warn "guest-fsfreeze-freeze problems - $@" if $@; } @@ -4926,7 +4929,7 @@ sub snapshot_create { eval { vm_mon_cmd($vmid, "savevm-end") }; warn $@ if $@; - if ($freezefs && $config->{agent}) { + if ($freezefs) { eval { vm_mon_cmd($vmid, "guest-fsfreeze-thaw"); }; warn "guest-fsfreeze-thaw problems - $@" if $@; }