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.
