This RFC converts indirect function calls into direct function calls. It converts one user as an example (readahead). Converting more users of iomap_apply() would yield a more advantageous diffstat. It's actually slightly more code in each filesystem, but indirect function calls are pretty expensive. It also flattens the call graph (see the patch 2 changelog). This all needs more refinement, but I'm about to start work on overhauling the block size < page size support, and I thought I'd send this out now. It does survive a basic xfstests run. Matthew Wilcox (Oracle) (2): iomap: Add iomap_iter iomap: Convert readahead to iomap_iter fs/iomap/apply.c | 29 +++++++++++++++ fs/iomap/buffered-io.c | 82 ++++++++++++++---------------------------- fs/xfs/xfs_aops.c | 9 ++++- fs/xfs/xfs_iomap.c | 15 ++++++++ fs/xfs/xfs_iomap.h | 2 ++ fs/zonefs/super.c | 20 ++++++++++- include/linux/iomap.h | 67 +++++++++++++++++++++++++++++++++- 7 files changed, 165 insertions(+), 59 deletions(-) -- 2.27.0