[pve-devel] [PATCH v2 storage 2/2] fix #2226: allow broken symlinks to be deleted via API

Stefan Reiter s.reiter at proxmox.com
Mon Jun 17 11:05:32 CEST 2019


Symlinks with a non-existing target fail Perls '-f' test and were thus
not deleteable via the API (failing with '$path does not exist').

Signed-off-by: Stefan Reiter <s.reiter at proxmox.com>
---

Deleting intact symlinks deletes the symlink but leaves the file it
points to intact. This behaviour has not changed with this patch.

 PVE/Storage/Plugin.pm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/PVE/Storage/Plugin.pm b/PVE/Storage/Plugin.pm
index 255c643..e20acb3 100644
--- a/PVE/Storage/Plugin.pm
+++ b/PVE/Storage/Plugin.pm
@@ -689,8 +689,8 @@ sub free_image {
     if (defined($format) && ($format eq 'subvol')) {
 	File::Path::remove_tree($path);
     } else {
-    
-	if (! -f $path) {
+
+	if (! (-f $path || -l $path)) {
 	    warn "disk image '$path' does not exists\n";
 	    return undef;
 	}
-- 
2.20.1





More information about the pve-devel mailing list