Hi Linus. Could you consider this pull request for 5.15-rc1? In this cycle, direct I/O and fsdax support for uncompressed files are now added in order to avoid double-caching for loop device and VM container use cases. All uncompressed cases are now turned into iomap infrastructure, which looks much simpler and cleaner. Besides, fiemap support is added for both (un)compressed files by using iomap infrastructure as well so end users can easily get file distribution. We've also added chunk-based uncompressed files support for data deduplication as the next step of VM container use cases. All commits have been tested and have been in linux-next. Note that in order to support iomap tail-packing inline, I had to merge iomap core branch (I've created a merge commit with the reason) in advance to resolve such functional dependency, which is now merged into upstream. Hopefully I did the right thing... Also, there is a merge conflict detected by Stephen with new fsdax cleanups in the nvdimm tree, which can be resolved as below if needed: https://lore.kernel.org/r/20210830170938.6fd8813d@xxxxxxxxxxxxxxxx Thanks, Gao Xiang The following changes since commit c500bee1c5b2f1d59b1081ac879d73268ab0ff17: Linux 5.14-rc4 (2021-08-01 17:04:17 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git tags/erofs-for-5.15-rc1 for you to fetch changes up to 1266b4a7ecb679587dc4d098abe56ea53313d569: erofs: fix double free of 'copied' (2021-08-25 22:05:58 +0800) ---------------------------------------------------------------- Changes since last update: - support direct I/O for all uncompressed files; - support fsdax for non-tailpacking regular files; - use iomap infrastructure for all uncompressed cases; - support fiemap for both (un)compressed files; - introduce chunk-based files for chunk deduplication. - some cleanups. ---------------------------------------------------------------- Andreas Gruenbacher (1): iomap: Fix some typos and bad grammar Christoph Hellwig (2): iomap: simplify iomap_readpage_actor iomap: simplify iomap_add_to_ioend Gao Xiang (9): iomap: support reading inline data from non-zero pos erofs: dax support for non-tailpacking regular file Merge tag 'iomap-5.15-merge-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git erofs: convert all uncompressed cases to iomap erofs: add support for the full decompressed length erofs: add fiemap support with iomap erofs: introduce chunk-based file on-disk format erofs: support reading chunk-based uncompressed files erofs: fix double free of 'copied' Huang Jianan (1): erofs: iomap support for non-tailpacking DIO Matthew Wilcox (Oracle) (3): iomap: Support inline data with block size < page size iomap: Use kmap_local_page instead of kmap_atomic iomap: Add another assertion to inline data handling Yue Hu (2): erofs: directly use wrapper erofs_page_is_managed() when shrinking erofs: remove the mapping parameter from erofs_try_to_free_cached_page() Documentation/filesystems/erofs.rst | 19 +- fs/erofs/Kconfig | 1 + fs/erofs/data.c | 415 +++++++++++++++++++----------------- fs/erofs/erofs_fs.h | 47 +++- fs/erofs/inode.c | 29 ++- fs/erofs/internal.h | 22 +- fs/erofs/namei.c | 1 + fs/erofs/super.c | 61 +++++- fs/erofs/zdata.c | 6 +- fs/erofs/zmap.c | 133 +++++++++++- fs/iomap/buffered-io.c | 169 +++++++-------- fs/iomap/direct-io.c | 10 +- include/linux/iomap.h | 18 ++ 13 files changed, 627 insertions(+), 304 deletions(-)