Re: [PATCH 2/3] Btrfs: use btrfs_alloc_data_chunk_ondemand() when allocating space for relocation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 9.06.20 г. 13:19 ч., fdmanana@xxxxxxxxxx wrote:
> From: Filipe Manana <fdmanana@xxxxxxxx>
> 
> We currently use btrfs_check_data_free_space() when allocating space for
> relocating data extents, but that is not necessary because that function
> combines btrfs_alloc_data_chunk_ondemand(), which does the actual space
> reservation, and btrfs_qgroup_reserve_data().
> 
> We can use btrfs_alloc_data_chunk_ondemand() directly because we know we
> do not need to reserve qgroup space since we are dealing with a relocation
> tree, which can never have qgroups (btrfs_qgroup_reserve_data() does
> nothing as is_fstree() returns false for a relocation tree).
> 
> Conversely we can use btrfs_free_reserved_data_space_noquota() directly
> instead of btrfs_free_reserved_data_space(), since we had no qgroup
> reservation when allocating space.
> 
> This change is preparatory work for another patch in this series that
> makes relocation reserve the exact amount of space it needs to relocate
> a data block group. The function btrfs_check_data_free_space() has
> the incovenient of requiring a start offset argument and we will want to
> be able to allocate space for multiple ranges, which are not consecutive,
> at once.
> 
> Signed-off-by: Filipe Manana <fdmanana@xxxxxxxx>

Reviewed-by: Nikolay Borisov <nborisov@xxxxxxxx>



[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux