Although the scenario where shmem_writepage() is called with info->flags
& VM_LOCKED is unlikely to happen, it's still possible, as evidenced by
syzbot [1]. However, the warning in this case isn't necessary because
the situation is already handled correctly [2].
[2] https://lore.kernel.org/lkml/8afe1f7f-31a2-4fc0-1fbd-f9ba8a116fe3@xxxxxxxxxx/
Reported-by: Pengfei Xu <pengfei.xu@xxxxxxxxx>
Closes: https://lore.kernel.org/lkml/ZZ9PShXjKJkVelNm@xxxxxxxxxxxxxxxx/ [1]
Suggested-by: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Florent Revest <revest@xxxxxxxxxxxx>
Signed-off-by: Ricardo Cañuelo Navarro <rcn@xxxxxxxxxx>
Fixes: 9a976f0c847b ("shmem: skip page split if we're not reclaiming")
---
mm/shmem.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/shmem.c b/mm/shmem.c
index 4ea6109a80431e5eeae15278064d5c86412f9fc9..a5eaad03038e8ca56a54d096159892e01c7a5bfe 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -1548,7 +1548,7 @@ static int shmem_writepage(struct page *page, struct writeback_control *wbc)
if (WARN_ON_ONCE(!wbc->for_reclaim))
goto redirty;
- if (WARN_ON_ONCE((info->flags & VM_LOCKED) || sbinfo->noswap))
+ if ((info->flags & VM_LOCKED) || sbinfo->noswap)
goto redirty;
if (!total_swap_pages)
---
base-commit: ac9c34d1e45a4c25174ced4fc0cfc33ff3ed08c7
change-id: 20250226-20250221-warning-in-shmem_writepage-e7f8f273317c
Cheers,
Ricardo