]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
fuse: Check for large folio with SPLICE_F_MOVE
authorBernd Schubert <bschubert@ddn.com>
Sun, 11 Jan 2026 11:48:07 +0000 (12:48 +0100)
committerMiklos Szeredi <mszeredi@redhat.com>
Tue, 3 Mar 2026 09:05:39 +0000 (10:05 +0100)
xfstest generic/074 and generic/075 complain result in kernel
warning messages / page dumps.
This is easily reproducible (on 6.19) with
CONFIG_TRANSPARENT_HUGEPAGE_SHMEM_HUGE_ALWAYS=y
CONFIG_TRANSPARENT_HUGEPAGE_TMPFS_HUGE_ALWAYS=y

This just adds a test for large folios fuse_try_move_folio
with the same page copy fallback, but to avoid the warnings
from fuse_check_folio().

Cc: stable@vger.kernel.org
Signed-off-by: Bernd Schubert <bschubert@ddn.com>
Signed-off-by: Horst Birthelmer <hbirthelmer@ddn.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/fuse/dev.c

index 0b0241f47170d4640f0b8f3cae8be1f78944a456..8596e693970bf15824b949a4c21571140d58188d 100644 (file)
@@ -1011,6 +1011,9 @@ static int fuse_try_move_folio(struct fuse_copy_state *cs, struct folio **foliop
        folio_clear_uptodate(newfolio);
        folio_clear_mappedtodisk(newfolio);
 
+       if (folio_test_large(newfolio))
+               goto out_fallback_unlock;
+
        if (fuse_check_folio(newfolio) != 0)
                goto out_fallback_unlock;