mbox series

[RFC,0/3] ext2: Use iomap in buffered-io for regular files and enable large folio support

Message ID cover.1700505907.git.ritesh.list@gmail.com (mailing list archive)
Headers show
Series ext2: Use iomap in buffered-io for regular files and enable large folio support | expand

Message

Ritesh Harjani (IBM) Nov. 20, 2023, 7:05 p.m. UTC
Hello, 

Please find this RFC series which converts ext2 regular file's buffered-io
path to iomap. The idea behind doing this work is to identify work required
to move ext* filesystems to iomap. 

Patch-1 is a fix which was identified while working on this series. 
It causes inode->i_size inconsistency, which also fails generic/091.

Patch-2 is a RFC patch which converts ext2 regular file's buffered-io path
to use iomap. The commit msg of that patch gives more details.

Patch-3 is finally a straight forward patch to enable large folio support on
ext2. 

Note: This series only converts regular file to iomap and not dir or any other type.
While doing the conversion, I observed that ext2 uses page cache for directories
and it uses fs/buffer.c API - block_write_begin()/block_write_end() for doing so.
(look into ext2_prepare_chunk() and ext2_commit_chunk())
We currently don't have an equivalent APIs in iomap for doing the same which
can be called from users. So, next I will be spending sometime on ext2 dir conversion.

For now it was discussed to continue the conversion of ext2 regular file's
buffered-io path to iomap which is what this series does.

Testing
=========
I have done some minimal testing of the series and haven't found any issue so far.
I will test 1k and 4k block size configuration with -g auto and update the results. 
Meanwhile I wanted to get the series out for an initial review.


Ritesh Harjani (IBM) (3):
  ext2: Fix ki_pos update for DIO buffered-io fallback case
  ext2: Convert ext2 regular file buffered I/O to use iomap
  ext2: Enable large folio support

 fs/ext2/file.c  | 21 ++++++++++++--
 fs/ext2/inode.c | 74 +++++++++++++++++++++++++++++++++++++++++++------
 2 files changed, 84 insertions(+), 11 deletions(-)