This series makes f2fs use the iomap direct I/O implementation instead of the fs/direct-io.c one. In order to do this, it adds f2fs_iomap_ops, since this is the first use of iomap in f2fs. The iomap direct I/O implementation is more efficient than fs/direct-io.c. Switching to iomap also avoids the need to add new features and optimizations to the old implementation; e.g., see https://lore.kernel.org/r/20200710053406.GA25530@xxxxxxxxxxxxx and https://lore.kernel.org/r/YKJBWClI7sUeABDs@xxxxxxxxxxxxx. Patch 1 adds f2fs_iomap_ops, and patch 2 switches direct I/O reads and writes to iomap. Careful review is appreciated, as I'm not an expert in all areas here. This series applies to commit 0de0db9b033a of f2fs.git#dev (https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git/log/?h=dev). Changed since v1: - Dropped the preparatory cleanups/fixes for f2fs_file_write_iter(), since they have been applied. - Merged the last three patches into one. - Implemented iomap_dio_ops::end_io() and switched to __iomap_dio_rw() to simplify updating of f2fs's in-flight DIO counters, as suggested by Christoph. Eric Biggers (2): f2fs: implement iomap operations f2fs: use iomap for direct I/O fs/f2fs/Kconfig | 1 + fs/f2fs/data.c | 260 +++++++++--------------------------- fs/f2fs/f2fs.h | 22 +-- fs/f2fs/file.c | 346 ++++++++++++++++++++++++++++++++++++++++++------ 4 files changed, 370 insertions(+), 259 deletions(-) base-commit: 0de0db9b033af99f494c9ee4a2c9bac6456da1eb -- 2.32.0