Hi all, this series refactors and simplifies the code in the xfs xfile abstraction, which is a thing layer on a kernel-use shmem file. To do this is needs a slighly lower level exports from shmem.c, which I combined with improving an assert and documentation there. Now that this series has a fair amount of reviews we also need to think how we can merge it best. Should the shmem changes be merged through the xfs tree? Should there be a shared branch? The series is against Linux 6.8-rc2. Changes since v2: - include internal.h in workingset.h to avoid a buildbot warning - update the usage comment for shmem_get_folio - improve the xfile_load/store documentation - don't use highmem for xfiles for real - only call filemap_check_wb_err to check for errors on the mapping Changes since v1: - fix reading i_blocks - provide wrappers for reading i_size and i_blocks - update the xfile load/store documentation - improve a commit message - use shmem_kernel_file_setup - add a missing folio unlock in the hwpoison path in xfile_get_page - fix checking for shmem mappings - improve I/O error handling (Darrick) - convert to folios (partially from Darrick) Diffstat: Documentation/filesystems/xfs/xfs-online-fsck-design.rst | 25 - fs/xfs/scrub/rtsummary.c | 6 fs/xfs/scrub/trace.h | 81 ++- fs/xfs/scrub/xfarray.c | 234 ++++------ fs/xfs/scrub/xfarray.h | 11 fs/xfs/scrub/xfile.c | 345 +++++---------- fs/xfs/scrub/xfile.h | 62 -- include/linux/shmem_fs.h | 6 include/linux/swap.h | 10 mm/filemap.c | 9 mm/internal.h | 4 mm/shmem.c | 37 + mm/workingset.c | 1 13 files changed, 349 insertions(+), 482 deletions(-)