This patch series converts the ext4 direct IO code paths to make use of the iomap infrastructure and removes the old buffer_head direct-io based implementation. The result is that ext4 is converted to the newer framework and that it may _possibly_ gain a performance boost for O_SYNC | O_DIRECT IO. These changes have been tested using xfstests in both DAX and non-DAX modes using various configurations i.e. 4k, dioread_nolock, dax. Matthew Bobrowski (5): ext4: introduce direct IO read code path using iomap infrastructure ext4: move inode extension/truncate code out from ext4_iomap_end() iomap: modify ->end_io() calling convention ext4: introduce direct IO write code path using iomap infrastructure ext4: clean up redundant buffer_head direct IO code fs/ext4/ext4.h | 3 - fs/ext4/extents.c | 8 +- fs/ext4/file.c | 329 +++++++++++++++++++++++++++------- fs/ext4/inode.c | 488 +++++--------------------------------------------- fs/iomap/direct-io.c | 9 +- fs/xfs/xfs_file.c | 17 +- include/linux/iomap.h | 4 +- 7 files changed, 322 insertions(+), 536 deletions(-) -- 2.16.4 -- Matthew Bobrowski