diff options
| author | Bernd Schubert <bschubert@ddn.com> | 2026-01-11 14:48:07 +0300 |
|---|---|---|
| committer | Miklos Szeredi <mszeredi@redhat.com> | 2026-03-03 12:05:39 +0300 |
| commit | 59ba47b6be9cd0146ef9a55c6e32e337e11e7625 (patch) | |
| tree | 20bbc4f75beae2d84921bc6d1f34a06418293139 | |
| parent | 129a45f9755a89f573c6a513a6b9e3d234ce89b0 (diff) | |
| download | linux-59ba47b6be9cd0146ef9a55c6e32e337e11e7625.tar.xz | |
fuse: Check for large folio with SPLICE_F_MOVE
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>
| -rw-r--r-- | fs/fuse/dev.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c index 0b0241f47170..8596e693970b 100644 --- a/fs/fuse/dev.c +++ b/fs/fuse/dev.c @@ -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; |
