From: Matthew Wilcox (Oracle) Date: Fri, 2 Sep 2022 19:46:35 +0000 (+0100) Subject: swap_state: convert free_swap_cache() to use a folio X-Git-Tag: v6.1-rc5~170^2~266 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=aedd74d4397a2b1a4882215b6169b47d139c0319;p=platform%2Fkernel%2Flinux-starfive.git swap_state: convert free_swap_cache() to use a folio Saves several calls to compound_head(). Link: https://lkml.kernel.org/r/20220902194653.1739778-40-willy@infradead.org Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Andrew Morton --- diff --git a/mm/swap_state.c b/mm/swap_state.c index 4af135a..438d067 100644 --- a/mm/swap_state.c +++ b/mm/swap_state.c @@ -272,16 +272,19 @@ void clear_shadow_from_swap_cache(int type, unsigned long begin, /* * If we are the only user, then try to free up the swap cache. * - * Its ok to check for PageSwapCache without the page lock + * Its ok to check the swapcache flag without the folio lock * here because we are going to recheck again inside - * try_to_free_swap() _with_ the lock. + * folio_free_swap() _with_ the lock. * - Marcelo */ void free_swap_cache(struct page *page) { - if (PageSwapCache(page) && !page_mapped(page) && trylock_page(page)) { - try_to_free_swap(page); - unlock_page(page); + struct folio *folio = page_folio(page); + + if (folio_test_swapcache(folio) && !folio_mapped(folio) && + folio_trylock(folio)) { + folio_free_swap(folio); + folio_unlock(folio); } }