mm/swap: convert put_swap_page() to put_swap_folio()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Fri, 2 Sep 2022 19:46:09 +0000 (20:46 +0100)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 3 Oct 2022 21:02:46 +0000 (14:02 -0700)
With all callers now using a folio, we can convert this function.

Link: https://lkml.kernel.org/r/20220902194653.1739778-14-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/swap.h
mm/shmem.c
mm/swap_slots.c
mm/swap_state.c
mm/swapfile.c
mm/vmscan.c

index dac6308d878e970a65bf1a35d8a9f6ecc248327f..42cbef554de68e19b1e68484b39a7e218f1cd36b 100644 (file)
@@ -491,7 +491,7 @@ static inline long get_nr_swap_pages(void)
 extern void si_swapinfo(struct sysinfo *);
 swp_entry_t folio_alloc_swap(struct folio *folio);
 bool folio_free_swap(struct folio *folio);
-extern void put_swap_page(struct page *page, swp_entry_t entry);
+void put_swap_folio(struct folio *folio, swp_entry_t entry);
 extern swp_entry_t get_swap_page_of_type(int);
 extern int get_swap_pages(int n, swp_entry_t swp_entries[], int entry_size);
 extern int add_swap_count_continuation(swp_entry_t, gfp_t);
@@ -576,7 +576,7 @@ static inline void swap_free(swp_entry_t swp)
 {
 }
 
-static inline void put_swap_page(struct page *page, swp_entry_t swp)
+static inline void put_swap_folio(struct folio *folio, swp_entry_t swp)
 {
 }
 
index ced76c229b960d46964eb881f961bf667de364de..56cabf9bb947bf275d4ceb3468b9e3ade786aeb5 100644 (file)
@@ -1424,7 +1424,7 @@ static int shmem_writepage(struct page *page, struct writeback_control *wbc)
        }
 
        mutex_unlock(&shmem_swaplist_mutex);
-       put_swap_page(&folio->page, swap);
+       put_swap_folio(folio, swap);
 redirty:
        folio_mark_dirty(folio);
        if (wbc->for_reclaim)
index 10b94d64cc257aadcc826ed4102a94def8fa1c6e..0bec1f705f8e09313e1fcdcf87568cd5bf68da38 100644 (file)
@@ -343,7 +343,7 @@ repeat:
        get_swap_pages(1, &entry, 1);
 out:
        if (mem_cgroup_try_charge_swap(folio, entry)) {
-               put_swap_page(&folio->page, entry);
+               put_swap_folio(folio, entry);
                entry.val = 0;
        }
        return entry;
index ecf1accc2fb18269a01cd70f8c0553898c18308f..ea354efd37356402476777ac474cbe7999807e1d 100644 (file)
@@ -218,7 +218,7 @@ bool add_to_swap(struct folio *folio)
        return true;
 
 fail:
-       put_swap_page(&folio->page, entry);
+       put_swap_folio(folio, entry);
        return false;
 }
 
@@ -237,7 +237,7 @@ void delete_from_swap_cache(struct folio *folio)
        __delete_from_swap_cache(folio, entry, NULL);
        xa_unlock_irq(&address_space->i_pages);
 
-       put_swap_page(&folio->page, entry);
+       put_swap_folio(folio, entry);
        folio_ref_sub(folio, folio_nr_pages(folio));
 }
 
@@ -498,7 +498,7 @@ struct page *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
        return &folio->page;
 
 fail_unlock:
-       put_swap_page(&folio->page, entry);
+       put_swap_folio(folio, entry);
        folio_unlock(folio);
        folio_put(folio);
        return NULL;
index f2a446799a3939da9ba7528fb0548f60870ca3c0..aafe739dc2a62b12a98574bf13601854183861a3 100644 (file)
@@ -1332,7 +1332,7 @@ void swap_free(swp_entry_t entry)
 /*
  * Called after dropping swapcache to decrease refcnt to swap entries.
  */
-void put_swap_page(struct page *page, swp_entry_t entry)
+void put_swap_folio(struct folio *folio, swp_entry_t entry)
 {
        unsigned long offset = swp_offset(entry);
        unsigned long idx = offset / SWAPFILE_CLUSTER;
@@ -1341,7 +1341,7 @@ void put_swap_page(struct page *page, swp_entry_t entry)
        unsigned char *map;
        unsigned int i, free_entries = 0;
        unsigned char val;
-       int size = swap_entry_size(thp_nr_pages(page));
+       int size = swap_entry_size(folio_nr_pages(folio));
 
        si = _swap_info_get(entry);
        if (!si)
index 9268e64590e4da20b7cc2d7620f2d07194b26f84..1707e3bfcfe42c45ec81ebbf07095411fb6a9dd5 100644 (file)
@@ -1352,7 +1352,7 @@ static int __remove_mapping(struct address_space *mapping, struct folio *folio,
                mem_cgroup_swapout(folio, swap);
                __delete_from_swap_cache(folio, swap, shadow);
                xa_unlock_irq(&mapping->i_pages);
-               put_swap_page(&folio->page, swap);
+               put_swap_folio(folio, swap);
        } else {
                void (*free_folio)(struct folio *);