summaryrefslogtreecommitdiffstats
path: root/fs/fuse
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@redhat.com>2021-06-18 21:16:42 +0200
committerMiklos Szeredi <mszeredi@redhat.com>2021-06-18 21:16:42 +0200
commitb89ecd60d38ec042d63bdb376c722a16f92bcb88 (patch)
treeb0c60479b367eae6dd3421a0b1a63ee8db5c1f28 /fs/fuse
parentfuse: Fix infinite loop in sget_fc() (diff)
downloadlinux-b89ecd60d38ec042d63bdb376c722a16f92bcb88.tar.xz
linux-b89ecd60d38ec042d63bdb376c722a16f92bcb88.zip
fuse: ignore PG_workingset after stealing
Fix the "fuse: trying to steal weird page" warning. Description from Johannes Weiner: "Think of it as similar to PG_active. It's just another usage/heat indicator of file and anon pages on the reclaim LRU that, unlike PG_active, persists across deactivation and even reclaim (we store it in the page cache / swapper cache tree until the page refaults). So if fuse accepts pages that can legally have PG_active set, PG_workingset is fine too." Reported-by: Thomas Lindroth <thomas.lindroth@gmail.com> Fixes: 1899ad18c607 ("mm: workingset: tell cache transitions from workingset thrashing") Cc: <stable@vger.kernel.org> # v4.20 Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'fs/fuse')
-rw-r--r--fs/fuse/dev.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
index a5ceccc5ef00..817a0b1c5c25 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -783,6 +783,7 @@ static int fuse_check_page(struct page *page)
1 << PG_uptodate |
1 << PG_lru |
1 << PG_active |
+ 1 << PG_workingset |
1 << PG_reclaim |
1 << PG_waiters))) {
dump_page(page, "fuse: trying to steal weird page");