Skip to content

ext2: DIO to use iomap

Ritesh Harjani (IBM) linux-ext4 linux-fsdevel 5 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v6 Latest9 patches 8 repliesIn review
  2. v59 patches 9 repliesSuperseded
  3. v4 RFC9 patches 5 repliesSuperseded
Earlier versions · 2
VersionPostedPatchesRepliesStatus
v3 RFC10 patches22 repliesSuperseded
v2 RFC8 patches20 repliesSuperseded

Patches in v6 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/9ext2/dax: Fix ext2_setsize when len is page alignedfs/ext2/inode.c+2 -30 replies
2/9fs/buffer.c: Add generic_buffers_fsync*() implementationfs/buffer.c include/linux/buffer_head.h+74 -00 replies
3/9ext4: Use generic_buffers_fsync_noflush() implementationfs/ext4/fsync.c+16 -170 replies
4/9ext2: Use generic_buffers_fsync() implementationfs/ext2/file.c+2 -10 replies
5/9ext2: Move direct-io to use iomapfs/ext2/ext2.h fs/ext2/file.c fs/ext2/inode.c+150 -190 replies
6/9fs.h: Add TRACE_IOCB_STRINGS for use in trace pointsinclude/linux/fs.h+14 -01 reply
7/9ext2: Add direct-io trace pointsfs/ext2/Makefile fs/ext2/file.c fs/ext2/trace.c +1 more+113 -20 replies
8/9iomap: Remove IOMAP_DIO_NOSYNC unused dio flagfs/iomap/direct-io.c include/linux/iomap.h+1 -71 reply
9/9iomap: Add DIO tracepointsfs/iomap/direct-io.c fs/iomap/trace.c fs/iomap/trace.h+85 -11 reply

Reviews trailers per patch

6 of 9 patches have a Reviewed-by or Acked-by.

PatchDarrick J. WongDisha GoelChristoph Hellwig
1/9R-b
2/9T-b R-b
3/9T-b
4/9T-b
5/9T-b R-b
6/9R-b T-b R-b
7/9Reported-and-tested-by
8/9R-b R-b T-b R-b
9/9R-b R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v6 thread

Cover letter [PATCHv6 0/9] ext2: DIO to use iomap

Hello All,

Please find the series which rewrites ext2 direct-io path to use modern iomap interface.

PATCHv5 -> PATCHv6:
===================
1. Patch-2 Added generic_buffers_fsync_noflush() & generic_buffers_fsync() functions.
2. Patch-3 & Patch-4 to use above functions in ext4 & ext2.
3. Added Reviewed-by from Christoph on Patch-9 (iomap: Add DIO tracepoints)

RFCv4 -> PATCHv5:
=================
1. Added trace_iomap_dio_rw_begin tracepoint in __iomap_dio_rw()
2. Added Reviewed-by tags from Christoph

RFCv3 -> RFCV4:
===============
1. Renamed __generic_file_fsync_nolock() from libfs to generic_buffer_fsync() in fs/buffer.c
(Review comment from Christoph)
2. Fixed s/EVENTD/EVENTFD/ in TRACE_IOCB_STRINGS
3. Fixed few data types for parameters in ext2 trace patch (size_t && ssize_t)
4. Killed this patch "Minor refactor of iomap_dio_rw"
5. Changed iomap tracepoint patch and fixed the data types (size_t && ssize_t) (addressed review comments from Christoph)

RFCv2 -> RFCv3:
===============
1. Addressed minor review comments related to extern, parameter naming in function declaration, removing not required braces and shorting overly long lines.
2. Added Reviewed-by from various reviewers.
3. Fixed a warning & couple of compilation errors in Patch-7 (ext2 trace points) related to CFLAGS_trace & second related to unable to find function definition for iov_iter_count(). (requires uio.h file) CFLAGS_trace is required in Makefile so that it can find trace.h file from tracepoint infrastructure.
4. Changed naming of IOCB_STRINGS TO TRACE_IOCB_STRINGS.
5. Shortened naming of tracepoint events for ext2 dio.
6. Added iomap DIO tracepoint events.
7. Disha tested this series internally against Power with "auto" group for 4k and 64k blocksize configuration. Added her "Tested-by" tag in all DIO related patches. No new failures were reported.

Thanks everyone for the review and test. The series is looking good to me now. It has been tested on x86 and Power with different configurations. Please let me know if anything else is required on this.

v2: https://lore.kernel.org/all/[email protected]/

Ritesh Harjani (IBM) (9):
ext2/dax: Fix ext2_setsize when len is page aligned fs/buffer.c: Add generic_buffers_fsync*() implementation
ext4: Use generic_buffers_fsync_noflush() implementation
ext2: Use generic_buffers_fsync() implementation
ext2: Move direct-io to use iomap
fs.h: Add TRACE_IOCB_STRINGS for use in trace points
ext2: Add direct-io trace points
iomap: Remove IOMAP_DIO_NOSYNC unused dio flag
iomap: Add DIO tracepoints

 fs/buffer.c                 |  70 ++++++++++++++++++++
 fs/ext2/Makefile            |   5 +-
 fs/ext2/ext2.h              |   1 +
 fs/ext2/file.c              | 126 +++++++++++++++++++++++++++++++++++-
 fs/ext2/inode.c             |  58 ++++++++++-------
 fs/ext2/trace.c             |   6 ++
 fs/ext2/trace.h             |  94 +++++++++++++++++++++++++++
 fs/ext4/fsync.c             |  33 +++++-----
 fs/iomap/direct-io.c        |   9 ++-
 fs/iomap/trace.c            |   1 +
 fs/iomap/trace.h            |  78 ++++++++++++++++++++++
 include/linux/buffer_head.h |   4 ++
 include/linux/fs.h          |  14 ++++
 include/linux/iomap.h       |   6 --
 14 files changed, 456 insertions(+), 49 deletions(-)
 create mode 100644 fs/ext2/trace.c
 create mode 100644 fs/ext2/trace.h

--
2.39.2