[pve-devel] [PATCH storage] btrfs: free image: only remove snapshots for current subvol

Fabian Ebner f.ebner at proxmox.com
Mon Sep 13 11:01:42 CEST 2021


instead of all in the same directory.

Reported in the community forum:
https://forum.proxmox.com/threads/error-could-not-statfs-no-such-file-or-directory.96057/

Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
---
 PVE/Storage/BTRFSPlugin.pm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/PVE/Storage/BTRFSPlugin.pm b/PVE/Storage/BTRFSPlugin.pm
index dbc1244..0ebb43b 100644
--- a/PVE/Storage/BTRFSPlugin.pm
+++ b/PVE/Storage/BTRFSPlugin.pm
@@ -6,7 +6,7 @@ use warnings;
 use base qw(PVE::Storage::Plugin);
 
 use Fcntl qw(S_ISDIR O_WRONLY O_CREAT O_EXCL);
-use File::Basename qw(dirname);
+use File::Basename qw(basename dirname);
 use File::Path qw(mkpath);
 use IO::Dir;
 use POSIX qw(EEXIST);
@@ -421,9 +421,11 @@ sub free_image {
     }
 
     my $dir = dirname($subvol);
+    my $basename = basename($subvol);
     my @snapshot_vols;
     foreach_subvol($dir, sub {
 	my ($volume, $name, $snapshot) = @_;
+	return if $name ne $basename;
 	return if !defined $snapshot;
 	push @snapshot_vols, "$dir/$volume";
     });
-- 
2.30.2





More information about the pve-devel mailing list