diff options
| author | Jeff Layton <jlayton@kernel.org> | 2026-05-11 07:58:27 -0400 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2026-06-04 10:16:50 +0200 |
| commit | 0ad186cf167fdbeb6b29a8005c71973781036bd3 (patch) | |
| tree | f3402d2770f4d855289027db127f84ccd484cef0 | |
| parent | de5fefadeff3cba9d4df1b0d6fe0518281bbccec (diff) | |
| download | linux-0ad186cf167fdbeb6b29a8005c71973781036bd3.tar.gz linux-0ad186cf167fdbeb6b29a8005c71973781036bd3.zip | |
mm: preserve PG_dropbehind flag during folio split
__split_folio_to_order() copies page flags from the original folio to
newly created sub-folios using an explicit allowlist, but PG_dropbehind
is not included. When a large folio with PG_dropbehind set is split,
only the head sub-folio retains the flag; all tail sub-folios silently
lose it and will not be reclaimed eagerly after writeback completes.
Add PG_dropbehind to the flag copy mask so that the drop-behind hint
is preserved across folio splits.
Fixes: a323281cdfec ("mm: add PG_dropbehind folio flag")
Assisted-by: Claude:claude-opus-4-6
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Link: https://patch.msgid.link/20260511-dontcache-v7-1-2848ddce8090@kernel.org
Acked-by: David Hildenbrand (Arm) <david@kernel.org>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
| -rw-r--r-- | mm/huge_memory.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 970e077019b7..e01917b14d1a 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -3642,6 +3642,7 @@ static void __split_folio_to_order(struct folio *folio, int old_order, (1L << PG_arch_3) | #endif (1L << PG_dirty) | + (1L << PG_dropbehind) | LRU_GEN_MASK | LRU_REFS_MASK)); if (handle_hwpoison && |
