From: Yongpeng Yang Date: Sat, 27 Dec 2025 07:34:31 +0000 (+0800) Subject: f2fs: remove non-uptodate folio from the page cache in move_data_block X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9609dd704725a40cd63d915f2ab6c44248a44598;p=thirdparty%2Fkernel%2Flinux.git f2fs: remove non-uptodate folio from the page cache in move_data_block During data movement, move_data_block acquires file folio without triggering a file read. Such folio are typically not uptodate, they need to be removed from the page cache after gc complete. This patch marks folio with the PG_dropbehind flag and uses folio_end_dropbehind to remove folio from the page cache. Signed-off-by: Yunlei He Signed-off-by: Yongpeng Yang Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim --- diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c index 58b291d19f06..d889f7d9a70f 100644 --- a/fs/f2fs/gc.c +++ b/fs/f2fs/gc.c @@ -1453,7 +1453,11 @@ up_out: put_out: f2fs_put_dnode(&dn); out: - f2fs_folio_put(folio, true); + if (!folio_test_uptodate(folio)) + __folio_set_dropbehind(folio); + folio_unlock(folio); + folio_end_dropbehind(folio); + folio_put(folio); return err; }