As Malte noted in [1], there is an issue with commit 3b97c3652d91 ("fuse: convert direct io to use folios"). This commit mistakenly assumed that all folios encountered in fuse are one page size, but this is not true for the direct io case. This problem was found when running bcachefs as the rootfs on an Arch VM, and installing FreeCAD with "flatpak install flathub org.freecad.FreeCAD". Before this fix, the checksum was corrupted and installation fails: error: Failed to install org.kde.Platform: Error pulling from repo: While pulling runtime/org.kde.Platform/x86_64/6.7 from remote flathub: fsck content object 886fd60617b81e81475db5e62beda5846d3e85fe77562eae536d2dd2a7af5b33: Corrupted file object; checksum expected='886fd60617b81e81475db5e62beda5846d3e85fe77562eae536d2dd2a7af5b33' actual='67f5a60d19f7a65e1ee272d455fed138b864be73399816ad18fa71319614a418' After this fix, the installation succeeds. A test case will be added for this (eg userspace opting into huge pages and using O_DIRECT) as well, in a separate patchset. [1] https://lore.kernel.org/linux-fsdevel/p3iss6hssbvtdutnwmuddvdadubrhfkdoosgmbewvo674f7f3y@cwnwffjqltzw/ Joanne Koong (1): fuse: fix direct io folio offset and length calculation fs/fuse/file.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) -- 2.43.5