swap: remove __swp_swapcount()
__swp_swapcount() just encloses the calling to swap_swapcount() with get/put_swap_device(). It is called in __read_swap_cache_async() only, which encloses the calling with get/put_swap_device() already. So, __read_swap_cache_async() can call swap_swapcount() directly. Link: https://lkml.kernel.org/r/20230529061355.125791-4-ying.huang@intel.com Signed-off-by: "Huang, Ying" <ying.huang@intel.com> Reviewed-by: David Hildenbrand <david@redhat.com> Reviewed-by: Chris Li (Google) <chrisl@kernel.org> Cc: Hugh Dickins <hughd@google.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Matthew Wilcox <willy@infradead.org> Cc: Michal Hocko <mhocko@suse.com> Cc: Minchan Kim <minchan@kernel.org> Cc: Tim Chen <tim.c.chen@linux.intel.com> Cc: Yang Shi <shy828301@gmail.com> Cc: Yu Zhao <yuzhao@google.com> Cc: Yosry Ahmed <yosryahmed@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
46a774d3ea
commit
3ecdeb0f87
|
@ -513,7 +513,7 @@ int find_first_swap(dev_t *device);
|
|||
extern unsigned int count_swap_pages(int, int);
|
||||
extern sector_t swapdev_block(int, pgoff_t);
|
||||
extern int __swap_count(swp_entry_t entry);
|
||||
extern int __swp_swapcount(swp_entry_t entry);
|
||||
extern int swap_swapcount(struct swap_info_struct *si, swp_entry_t entry);
|
||||
extern int swp_swapcount(swp_entry_t entry);
|
||||
extern struct swap_info_struct *page_swap_info(struct page *);
|
||||
extern struct swap_info_struct *swp_swap_info(swp_entry_t entry);
|
||||
|
@ -591,7 +591,7 @@ static inline int __swap_count(swp_entry_t entry)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static inline int __swp_swapcount(swp_entry_t entry)
|
||||
static inline int swap_swapcount(struct swap_info_struct *si, swp_entry_t entry)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -447,7 +447,7 @@ struct page *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
|
|||
* as SWAP_HAS_CACHE. That's done in later part of code or
|
||||
* else swap_off will be aborted if we return NULL.
|
||||
*/
|
||||
if (!__swp_swapcount(entry) && swap_slot_cache_enabled)
|
||||
if (!swap_swapcount(si, entry) && swap_slot_cache_enabled)
|
||||
goto fail_put_swap;
|
||||
|
||||
/*
|
||||
|
|
|
@ -1444,7 +1444,7 @@ int __swap_count(swp_entry_t entry)
|
|||
* This does not give an exact answer when swap count is continued,
|
||||
* but does include the high COUNT_CONTINUED flag to allow for that.
|
||||
*/
|
||||
static int swap_swapcount(struct swap_info_struct *si, swp_entry_t entry)
|
||||
int swap_swapcount(struct swap_info_struct *si, swp_entry_t entry)
|
||||
{
|
||||
pgoff_t offset = swp_offset(entry);
|
||||
struct swap_cluster_info *ci;
|
||||
|
@ -1456,24 +1456,6 @@ static int swap_swapcount(struct swap_info_struct *si, swp_entry_t entry)
|
|||
return count;
|
||||
}
|
||||
|
||||
/*
|
||||
* How many references to @entry are currently swapped out?
|
||||
* This does not give an exact answer when swap count is continued,
|
||||
* but does include the high COUNT_CONTINUED flag to allow for that.
|
||||
*/
|
||||
int __swp_swapcount(swp_entry_t entry)
|
||||
{
|
||||
int count = 0;
|
||||
struct swap_info_struct *si;
|
||||
|
||||
si = get_swap_device(entry);
|
||||
if (si) {
|
||||
count = swap_swapcount(si, entry);
|
||||
put_swap_device(si);
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
/*
|
||||
* How many references to @entry are currently swapped out?
|
||||
* This considers COUNT_CONTINUED so it returns exact answer.
|
||||
|
|
Loading…
Reference in New Issue