[PATCH v5 01/39] mm: Move PageDoubleMap bit

From: Matthew Wilcox
Date: Thu May 28 2020 - 23:04:17 EST


From: "Matthew Wilcox (Oracle)" <willy@xxxxxxxxxxxxx>

PG_private_2 is defined as being PF_ANY (applicable to tail pages
as well as regular & head pages). That means that the first tail
page of a double-map page will appear to have Private2 set. Use the
Workingset bit instead which is defined as PF_HEAD so any attempt to
access the Workingset bit on a tail page will redirect to the head page's
Workingset bit.

Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx>
---
include/linux/page-flags.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index 222f6f7b2bb3..de6e0696f55c 100644
--- a/include/linux/page-flags.h
+++ b/include/linux/page-flags.h
@@ -164,7 +164,7 @@ enum pageflags {
PG_slob_free = PG_private,

/* Compound pages. Stored in first tail page's flags */
- PG_double_map = PG_private_2,
+ PG_double_map = PG_workingset,

/* non-lru isolated movable page */
PG_isolated = PG_reclaim,
--
2.26.2