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:
committed by
Thomas Lamprecht
parent
4748fdf334
commit
9524b31ee3
@ -6,7 +6,7 @@ use warnings;
|
|||||||
use base qw(PVE::Storage::Plugin);
|
use base qw(PVE::Storage::Plugin);
|
||||||
|
|
||||||
use Fcntl qw(S_ISDIR O_WRONLY O_CREAT O_EXCL);
|
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 File::Path qw(mkpath);
|
||||||
use IO::Dir;
|
use IO::Dir;
|
||||||
use POSIX qw(EEXIST);
|
use POSIX qw(EEXIST);
|
||||||
@ -421,9 +421,11 @@ sub free_image {
|
|||||||
}
|
}
|
||||||
|
|
||||||
my $dir = dirname($subvol);
|
my $dir = dirname($subvol);
|
||||||
|
my $basename = basename($subvol);
|
||||||
my @snapshot_vols;
|
my @snapshot_vols;
|
||||||
foreach_subvol($dir, sub {
|
foreach_subvol($dir, sub {
|
||||||
my ($volume, $name, $snapshot) = @_;
|
my ($volume, $name, $snapshot) = @_;
|
||||||
|
return if $name ne $basename;
|
||||||
return if !defined $snapshot;
|
return if !defined $snapshot;
|
||||||
push @snapshot_vols, "$dir/$volume";
|
push @snapshot_vols, "$dir/$volume";
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user