mbox series

[v2,0/2] f2fs: use iomap for direct I/O

Message ID 20210723075921.166705-1-ebiggers@kernel.org (mailing list archive)
Headers show
Series f2fs: use iomap for direct I/O | expand

Message

Eric Biggers July 23, 2021, 7:59 a.m. UTC
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@infradead.org and
https://lore.kernel.org/r/YKJBWClI7sUeABDs@infradead.org.

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