Re: [PATCH] mm: swap: prevent possible data-race in __try_to_reclaim_swap

From: Matthew Wilcox
Date: Fri Oct 04 2024 - 10:34:41 EST


On Fri, Oct 04, 2024 at 11:25:04PM +0900, Jeongjun Park wrote:
> A report [1] was uploaded from syzbot.
>
> In the previous commit 862590ac3708 ("mm: swap: allow cache reclaim to skip
> slot cache"), the __try_to_reclaim_swap() function reads offset and nr_pages
> from folio without folio_lock protection.

Umm. You don't need folio_lock to read nr_pages. Holding a refcount
is sufficient to stabilise nr_pages. I cannot speak to folio->swap
though (and the KCSAN report does appear to be pointing to folio->swap).