fuse: ignore PG_workingset after stealing
authorMiklos Szeredi <mszeredi@redhat.com>
Fri, 18 Jun 2021 19:16:42 +0000 (21:16 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Jul 2021 14:55:47 +0000 (16:55 +0200)
commit b89ecd60d38ec042d63bdb376c722a16f92bcb88 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/fuse/dev.c

index 588f8d1240aab377c94fc1e7aa619a1b89b181e3..5ecd7d38a85af072e43e0448c325ddc9604f3c74 100644 (file)
@@ -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");