On 06/04/2021 10:07, Naohiro Aota wrote: > This is the userland counterpart of the following series. > > https://lore.kernel.org/linux-btrfs/20200225035626.1049501-1-naohiro.a...@wdc.com/ > > This series refactors chunk allocation and device_extent allocation > functions and make them generalized to be able to implement other > allocation policy easily. > > On top of this series, we can simplify userland side of the zoned series as > adding a new type of chunk allocator and extent allocator for zoned block > devices. Furthermore, we will be able to implement and test some other > allocator in the idea page of the wiki e.g. SSD caching, dedicated metadata > drive, chunk allocation groups, and so on. > > This series also fixes a bug of calculating the stripe size in DUP profile, > and cleans up the code. > > * Refactoring chunk/dev_extent allocator > > Two functions are separated from find_free_dev_extent_start(). > dev_extent_search_start() decides the starting position of the search. > dev_extent_hole_check() checks if a hole found is suitable for device > extent allocation. > > Split some parts of btrfs_alloc_chunk() into three functions. > init_alloc_chunk_policy() initializes the parameters of an allocation. > decide_stripe_size() decides the size of chunk and device_extent. And, > create_chunk() creates a chunk and device extents. > > * Patch organization > > Patches 1 and 2 refactor find_free_dev_extent_start(). > > Patches 3 to 6 refactor btrfs_alloc_chunk() by moving the code into three > other functions. > > Patch 7 uses create_chunk() to simplify btrfs_alloc_data_chunk(). > > Patch 8 fixes a bug of calculating stripe size in DUP profile. > > Patches 9 to 12 clean up btrfs_alloc_chunk() code by dropping unnecessary > parameters, and using better macro/variable name to clarify the meaning. >
For the whole series, Reviewed-by: Johannes Thumshirn <johannes.thumsh...@wdc.com>