On Sun, 4 Jun 2017, Levin, Alexander (Sasha Levin) wrote: > From: Hugh Dickins <hughd@xxxxxxxxxx> > > [ Upstream commit b6789123bccba8b5feb9901ed2e8c3c39181979d ] > > Commit 6326fec1122c ("mm: Use owner_priv bit for PageSwapCache, valid > when PageSwapBacked") aliased PG_swapcache to PG_owner_priv_1 (and > depending on PageSwapBacked being true). > > As a result, the KPF_SWAPCACHE bit in '/proc/kpageflags' should now be > synthesized, instead of being shown on unrelated pages which just happen > to have PG_owner_priv_1 set. I think this does not belong in v4.9 LTS - though it would only be puzzling, not harmful there. It's a fix to an earlier v4.10 commit, and I wouldn't expect that earlier v4.10 commit to be added to v4.9 LTS (but perhaps my expectation is wrong - I'm not in stable@xxxxxxxxxxxxxxx, so wouldn't see all 111 of these mails). Hugh > > Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx> > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Cc: Nicholas Piggin <npiggin@xxxxxxxxx> > Cc: Wu Fengguang <fengguang.wu@xxxxxxxxx> > Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> > Signed-off-by: Sasha Levin <alexander.levin@xxxxxxxxxxx> > --- > fs/proc/page.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/fs/proc/page.c b/fs/proc/page.c > index 3ecd445e830d..8ffd43709634 100644 > --- a/fs/proc/page.c > +++ b/fs/proc/page.c > @@ -173,7 +173,8 @@ u64 stable_page_flags(struct page *page) > u |= kpf_copy_bit(k, KPF_ACTIVE, PG_active); > u |= kpf_copy_bit(k, KPF_RECLAIM, PG_reclaim); > > - u |= kpf_copy_bit(k, KPF_SWAPCACHE, PG_swapcache); > + if (PageSwapCache(page)) > + u |= 1 << KPF_SWAPCACHE; > u |= kpf_copy_bit(k, KPF_SWAPBACKED, PG_swapbacked); > > u |= kpf_copy_bit(k, KPF_UNEVICTABLE, PG_unevictable); > -- > 2.11.0 >