btrfs: fix volume size info for subvolumes in scalar context

Return the same size as in list context. See also commit "plugin: file
size info: be consistent about size of directory subvol".

Fixes cloning containers with unsized subvolumes on BTRFS. Before the
change, this would fail with "mkfs.ext4: Device size reported to be
zero.". That is because with non-zero size, the allocation of the
volume for the clone will be done with 'raw' format by the
alloc_disk() helper in LXC.pm rather than 'subvol'. This change will
make cloning containers with unsized subvol directories possible.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Link: https://lore.proxmox.com/20250303092445.13873-3-f.ebner@proxmox.com
This commit is contained in:
Fiona Ebner
2025-03-03 10:24:42 +01:00
committed by Thomas Lamprecht
parent 544dc0e893
commit 00105c8003

View File

@ -487,7 +487,7 @@ sub volume_size_info {
my $ctime = (stat($path))[10];
my ($used, $size) = (0, 0);
#my ($used, $size) = btrfs_subvol_quota($class, $path); # uses wantarray
return wantarray ? ($size, 'subvol', $used, undef, $ctime) : 1;
return wantarray ? ($size, 'subvol', $used, undef, $ctime) : $size;
}
return PVE::Storage::Plugin::file_size_info($path, $timeout, $format);