From: Dietmar Maurer Date: Tue, 12 Jan 2016 06:33:13 +0000 (+0100) Subject: snapshot_create: unfreeze after snapshot creation X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=2477a7f17a388ff4d563bd6966adbd34b1bc7aa1;p=pve-container.git snapshot_create: unfreeze after snapshot creation As pointed out by Gerrit Venema. Also make sure to unfreeze in case of errors (exceptions). --- diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm index 0405907..860901f 100644 --- a/src/PVE/LXC.pm +++ b/src/PVE/LXC.pm @@ -1785,9 +1785,13 @@ sub snapshot_create { my $conf = load_config($vmid); my $running = check_running($vmid); + + my $unfreeze = 0; + eval { if ($running) { PVE::Tools::run_command(['/usr/bin/lxc-freeze', '-n', $vmid]); + $unfreeze = 1; PVE::Tools::run_command(['/bin/sync']); }; @@ -1795,14 +1799,17 @@ sub snapshot_create { my $rootinfo = parse_ct_mountpoint($conf->{rootfs}); my $volid = $rootinfo->{volume}; - if ($running) { - PVE::Tools::run_command(['/usr/bin/lxc-unfreeze', '-n', $vmid]); - }; - PVE::Storage::volume_snapshot($storecfg, $volid, $snapname); &$snapshot_commit($vmid, $snapname); }; - if(my $err = $@) { + my $err = $@; + + if ($unfreeze) { + eval { PVE::Tools::run_command(['/usr/bin/lxc-unfreeze', '-n', $vmid]); }; + warn $@ if $@; + } + + if ($err) { snapshot_delete($vmid, $snapname, 1); die "$err\n"; }