[pve-devel] [PATCH storage 2/6] btrfs: fix volume size info for subvolumes in scalar context
Fiona Ebner
f.ebner at proxmox.com
Mon Mar 3 10:03:06 CET 2025
Am 03.03.25 um 08:31 schrieb Wolfgang Bumiller:
> On Fri, Feb 28, 2025 at 03:50:18PM +0100, Fiona Ebner wrote:
>> 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.".
>
> Interesting how it says "reported to be zero", when this commit changes
> it from `1` to, well, zero?
When allocating the volume for the clone, we use the same size as the
old volume. The value 0 will lead to using 'subvol' format for the new
volume. With 1, it tries to use 'raw' format and then fails when
attempting to format.
>
>>
>> Signed-off-by: Fiona Ebner <f.ebner at proxmox.com>
>> ---
>> src/PVE/Storage/BTRFSPlugin.pm | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/PVE/Storage/BTRFSPlugin.pm b/src/PVE/Storage/BTRFSPlugin.pm
>> index 1966b6f..b1f7912 100644
>> --- a/src/PVE/Storage/BTRFSPlugin.pm
>> +++ b/src/PVE/Storage/BTRFSPlugin.pm
>> @@ -486,7 +486,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);
>> --
>> 2.39.5
More information about the pve-devel
mailing list