From 399581a2b3fd2a80c065c81e0a93d305c20117aa Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Fri, 25 Sep 2015 12:02:33 +0200 Subject: [PATCH] volume_snapshot_delete: deactivate before deleting --- PVE/Storage/Plugin.pm | 2 ++ PVE/Storage/RBDPlugin.pm | 2 ++ PVE/Storage/SheepdogPlugin.pm | 2 ++ PVE/Storage/ZFSPoolPlugin.pm | 1 + changelog.Debian | 2 ++ 5 files changed, 9 insertions(+) diff --git a/PVE/Storage/Plugin.pm b/PVE/Storage/Plugin.pm index 0eb9e73..6a1d6b6 100644 --- a/PVE/Storage/Plugin.pm +++ b/PVE/Storage/Plugin.pm @@ -709,6 +709,8 @@ sub volume_snapshot_delete { my $path = $class->filesystem_path($scfg, $volname); + $class->deactivate_volume($storeid, $scfg, $volname, $snap, {}); + my $cmd = ['/usr/bin/qemu-img', 'snapshot','-d', $snap, $path]; run_command($cmd); diff --git a/PVE/Storage/RBDPlugin.pm b/PVE/Storage/RBDPlugin.pm index 71edc8b..730fb85 100644 --- a/PVE/Storage/RBDPlugin.pm +++ b/PVE/Storage/RBDPlugin.pm @@ -569,6 +569,8 @@ sub volume_snapshot_delete { return 1 if $running; + $class->deactivate_volume($storeid, $scfg, $volname, $snap, {}); + my ($vtype, $name, $vmid) = $class->parse_volname($volname); my (undef, undef, undef, $protected) = rbd_volume_info($scfg, $storeid, $name, $snap); diff --git a/PVE/Storage/SheepdogPlugin.pm b/PVE/Storage/SheepdogPlugin.pm index 527c6c6..6368cf4 100644 --- a/PVE/Storage/SheepdogPlugin.pm +++ b/PVE/Storage/SheepdogPlugin.pm @@ -416,6 +416,8 @@ sub volume_snapshot_delete { return 1 if $running; + $class->deactivate_volume($storeid, $scfg, $volname, $snap, {}); + my ($vtype, $name, $vmid, $basename, $basevmid, $isBase) = $class->parse_volname($volname); diff --git a/PVE/Storage/ZFSPoolPlugin.pm b/PVE/Storage/ZFSPoolPlugin.pm index 632645f..8002dda 100644 --- a/PVE/Storage/ZFSPoolPlugin.pm +++ b/PVE/Storage/ZFSPoolPlugin.pm @@ -462,6 +462,7 @@ sub volume_snapshot { sub volume_snapshot_delete { my ($class, $scfg, $storeid, $volname, $snap, $running) = @_; + $class->deactivate_volume($storeid, $scfg, $volname, $snap, {}); $class->zfs_request($scfg, undef, 'destroy', "$scfg->{pool}/$volname\@$snap"); } diff --git a/changelog.Debian b/changelog.Debian index e05f5c0..54e7293 100644 --- a/changelog.Debian +++ b/changelog.Debian @@ -2,6 +2,8 @@ libpve-storage-perl (4.0-24) unstable; urgency=medium * drbd: return correct used/avail/total sizes + * volume_snapshot_delete: deactivate before deleting + -- Proxmox Support Team Fri, 25 Sep 2015 13:36:22 +0200 libpve-storage-perl (4.0-23) unstable; urgency=medium