On Thu, Nov 01, 2018 at 02:09:45PM +0200, Nikolay Borisov wrote:
> extent_io_ops has a set of 8 optional hooks which are set only for data and 
> freespace inodes. The majority of them actually deal with delallocs in one 
> way 
> or another. Inspecting the code it transpired that there is actually no need 
> to
> have them as function pointers in a structure. Data/freespace inodes can 
> easily
> be distinguished from the btree_inode (which is pending removal anyway) by 
> inspecting extent_io_tree::private_data. This member is set by all 
> data/freespace
> inodes. This series exploits this fact to remove the majority of them. 
> Others, 
> such as fill_delalloc, writepage_start_hook and writepage_end_io_hook are 
> always
> called from the data writeout path and can be directly called without having 
> to
> check whether the respective pointers are set. 
> 
> This series has undergone multiple xfstest runs and no regressions were 
> identified. Additionally all but run_delalloc_range functions are given more 
> descriptive names, related to their actual intent. 
> 
> Nikolay Borisov (8):
>   btrfs: Remove extent_io_ops::fill_delalloc
>   btrfs: Remove extent_io_ops::writepage_start_hook
>   btrfs: Remove extent_io_ops::writepage_end_io_hook
>   btrfs: Remove extent_io_ops::check_extent_io_range callback
>   btrfs: Remove extent_io_ops::set_bit_hook extent_io callback
>   btrfs: Remove extent_io_ops::clear_bit_hook callback
>   btrfs: Remove extent_io_ops::merge_extent_hook callback
>   btrfs: Remove extent_io_ops::split_extent_hook callback

Added to misc-next, thanks.

Reply via email to