In list context, the file_size_info() function in Plugin.pm and the
volume_size_info() function in BTRFSPlugin.pm would return 0 for the
size, but in scalar context 1. As reported in the community forum [0],
the change in commit e50dde0 ("volume export: rely on storage plugin's
format"), changing the caller in volume_export() to scalar context
exposed the inconsistency in the return value for the size. This led
to breakage of migration with unsized btrfs subvolumes.

The first patch is the regression fix. Second patch fixes cloning
containers with unsized subvolumes on BTFRS. The rest are independent
further cleanups or improvements in the context of unsized subvols.

[0]: https://forum.proxmox.com/threads/162943/

Fiona Ebner (6):
  plugin: file size info: be consistent about size of directory subvol
  btrfs: fix volume size info for subvolumes in scalar context
  plugin: volume export formats: avoid superfluous file_size_info() call
  api: volume info: do not fail for zero-sized subvolumes
  btrfs: die early for broken subvolume resize
  btrfs: note that btrfs_get_subvol_id() function is broken

 src/PVE/API2/Storage/Content.pm | 4 +++-
 src/PVE/Storage/BTRFSPlugin.pm  | 6 +++++-
 src/PVE/Storage/Plugin.pm       | 5 +----
 3 files changed, 9 insertions(+), 6 deletions(-)

-- 
2.39.5



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to