I'm trying to make it easy & efficient for a filesystem to read its file tails into a folio. iomap's implementation was pretty good, but had some limitations (eg tails couldn't cross a page boundary). This should be an all-singing, all-dancing implementation which copies the correct part of the buffer into the correct part of the folio and zeroes the remainder of the folio. It should work with highmem, but the calculations are a bit tricky and I may have got something wrong. For some reason I'm currently running an XFS test against it, even though I know XFS doesn't support inline data. If there's good feedback, I'll take a look at converting udf_adinicb_readpage() and other similar functions. Matthew Wilcox (Oracle) (2): filemap: Add folio_copy_tail() iomap: Use folio_copy_tail() fs/iomap/buffered-io.c | 23 +++++------------ include/linux/pagemap.h | 1 + mm/filemap.c | 56 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 17 deletions(-) -- 2.39.1