In ext4_iomap_write_begin(), we speed up mapping check by checking the
folio dirty bit. If the folio is dirty, it means this folio has just
been written and must have a counterpart allocated block or delalloc
extent, so we don't need to map the folio again if we write to the same
place, this could speed up a lot for the case of repeated overwrite to
the same folio. However, we only check the entire folio has been dirty
or not, so it doesn't support if we have more than one blocks per folio
yet.
This series fix the handles of sub-folio properly in iomap, and extend
this improvement by checking partial blocks in one folio.
Zhang Yi (6):
iomap: correct the range of a partial dirty clear
iomap: support invalidating partial folios
iomap: advance the ifs allocation if we have more than one blocks per
folio
iomap: correct the dirty length in page mkwrite
iomap: add iomap_is_fully_dirty()
ext4: improve sub-polio check in ext4_iomap_write_begin()
fs/ext4/inode.c | 2 +-
fs/iomap/buffered-io.c | 64 ++++++++++++++++++++++++++++++++++++------
include/linux/iomap.h | 1 +
3 files changed, 57 insertions(+), 10 deletions(-)
--
2.31.1