PR sync from: Zhang Yi yi.zhang@huawei.com
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/2C4Y66XVULY5CO3RPZYXUXWAS4FDLIEA/
This series convert ext4 buffered IO path from buffered_head to iomap,
and enable large folio by default.

01-14: ioamp map multiple blocks pre ->map_blocks by Christoph, backport
from [1].
15: A small debug improvement for the previous series in iomap
map_blocks [2].
16-24: fix a stale zero data issue in xfs and make iomap_zero_ranege
don't increase i_size [3].
25-29: the first part of prepartory changes have been merged to
upstream [4].
30-38: the second part of prepartory changes, fix an issue and support
adding multi-delalloc blocks [5].
39-54: comvert buffered_head to iomap, these are picked up from the my
v3 series [6].

[1] https://lore.kernel.org/linux-fsdevel/20231207072710.176093-1-hch@lst.de/
[2] https://lore.kernel.org/linux-fsdevel/20240220115759.3445025-1-yi.zhang@huaweicloud.com/
[3] https://lore.kernel.org/linux-xfs/20240320110548.2200662-1-yi.zhang@huaweicloud.com/
[4] https://lore.kernel.org/linux-ext4/20240105033018.1665752-1-yi.zhang@huaweicloud.com/
[5] https://lore.kernel.org/linux-ext4/20240410034203.2188357-1-yi.zhang@huaweicloud.com/
[6] https://lore.kernel.org/linux-ext4/20240127015825.1608160-1-yi.zhang@huaweicloud.com/

Thanks,
Yi.

Christoph Hellwig (14):
iomap: clear the per-folio dirty bits on all writeback failures
iomap: treat inline data in iomap_writepage_map as an I/O error
iomap: move the io_folios field out of struct iomap_ioend
iomap: move the PF_MEMALLOC check to iomap_writepages
iomap: factor out a iomap_writepage_handle_eof helper
iomap: move all remaining per-folio logic into iomap_writepage_map
iomap: clean up the iomap_alloc_ioend calling convention
iomap: move the iomap_sector sector calculation out of
iomap_add_to_ioend
iomap: don't chain bios
iomap: only call mapping_set_error once for each failed bio
iomap: factor out a iomap_writepage_map_block helper
iomap: submit ioends immediately
iomap: map multiple blocks at a time
iomap: pass the length of the dirty region to ->map_blocks

Zhang Yi (40):
iomap: add pos and dirty_len into trace_iomap_writepage_map
xfs: make the seq argument to xfs_bmapi_convert_delalloc() optional
xfs: make xfs_bmapi_convert_delalloc() to allocate the target offset
xfs: convert delayed extents to unwritten when zeroing post eof blocks
iomap: drop the write failure handles when unsharing and zeroing
iomap: don't increase i_size if it's not a write operation
iomap: use a new variable to handle the written bytes in
iomap_write_iter()
iomap: make iomap_write_end() return a boolean
iomap: do some small logical cleanup in buffered write
ext4: refactor ext4_da_map_blocks()
ext4: convert to exclusive lock while inserting delalloc extents
ext4: add a hole extent entry in cache after punch
ext4: make ext4_map_blocks() distinguish delalloc only extent
ext4: make ext4_set_iomap() recognize IOMAP_DELALLOC map type
ext4: factor out a common helper to query extent map
ext4: check the extent status again before inserting delalloc block
ext4: trim delalloc extent
ext4: drop iblock parameter
ext4: make ext4_es_insert_delayed_block() insert multi-blocks
ext4: make ext4_da_reserve_space() reserve multi-clusters
ext4: factor out check for whether a cluster is allocated
ext4: make ext4_insert_delayed_block() insert multi-blocks
ext4: make ext4_da_map_blocks() buffer_head unaware
ext4: use reserved metadata blocks when splitting extent on endio
ext4: factor out ext4_map_create_blocks() to allocate new blocks
ext4: introduce seq counter for the extent status entry
ext4: add a new iomap aops for regular file's buffered IO path
ext4: implement buffered read iomap path
ext4: implement buffered write iomap path
ext4: implement writeback iomap path
ext4: implement mmap iomap path
ext4: implement zero_range iomap path
ext4: writeback partial blocks before zeroing out range
ext4: fall back to buffer_head path for defrag
ext4: partial enable iomap for regular file's buffered IO path
filemap: support disable large folios on active inode
ext4: enable large folio for regular file with iomap buffered IO path
ext4: don't mark IOMAP_F_DIRTY for buffer write
ext4: add mount option for buffered IO iomap path

--
2.39.2

#I9R3AY:【OLK-6.6】Backport two series of performance patch