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. Do do this is needs a slighly lower level export from shmem.c, which I combined with improving an assert and documentation there. One thing I don't really like yet is that xfile is still based on folios and not pages. The main stumbling block for that is the mess around the hwpoison flag - that one still is per-file and not per-folio, and shmem checks it weirdly often and not really in at the abstractions levels where I'd expect it and feels very different from the normal page cache code in filemap.c. Maybe I'm just failing to understand why that is done, but especially without comments explaining it it feels like it could use some real attention first. Diffstat: Documentation/filesystems/xfs/xfs-online-fsck-design.rst | 10 fs/xfs/scrub/trace.h | 38 - fs/xfs/scrub/xfarray.c | 60 -- fs/xfs/scrub/xfarray.h | 3 fs/xfs/scrub/xfile.c | 311 +++------------ fs/xfs/scrub/xfile.h | 62 -- mm/shmem.c | 24 + 7 files changed, 143 insertions(+), 365 deletions(-)