btrfs: free image: only remove snapshots for current subvol

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@proxmox.com>
This commit is contained in:
Fabian Ebner
2021-09-13 11:01:42 +02:00
committed by Thomas Lamprecht
parent 4748fdf334
commit 9524b31ee3

View File

@ -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";
});