mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
mm/swapfile.c: add __swap_entry_free_locked()
The part of __swap_entry_free() with lock held is separated into a new function __swap_entry_free_locked(). Because we want to reuse that piece of code in some other places. Just mechanical code refactoring, there is no any functional change in this function. Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: "Huang, Ying" <[email protected]> Reviewed-by: Daniel Jordan <[email protected]> Acked-by: Dave Hansen <[email protected]> Cc: Michal Hocko <[email protected]> Cc: Johannes Weiner <[email protected]> Cc: Shaohua Li <[email protected]> Cc: Hugh Dickins <[email protected]> Cc: Minchan Kim <[email protected]> Cc: Rik van Riel <[email protected]> Cc: Dan Williams <[email protected]> Cc: Matthew Wilcox <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
5d5e8f1954
commit
b32d5f32b9
1 changed files with 14 additions and 6 deletions
|
|
@ -1123,16 +1123,13 @@ static struct swap_info_struct *swap_info_get_cont(swp_entry_t entry,
|
|||
return p;
|
||||
}
|
||||
|
||||
static unsigned char __swap_entry_free(struct swap_info_struct *p,
|
||||
swp_entry_t entry, unsigned char usage)
|
||||
static unsigned char __swap_entry_free_locked(struct swap_info_struct *p,
|
||||
unsigned long offset,
|
||||
unsigned char usage)
|
||||
{
|
||||
struct swap_cluster_info *ci;
|
||||
unsigned long offset = swp_offset(entry);
|
||||
unsigned char count;
|
||||
unsigned char has_cache;
|
||||
|
||||
ci = lock_cluster_or_swap_info(p, offset);
|
||||
|
||||
count = p->swap_map[offset];
|
||||
|
||||
has_cache = count & SWAP_HAS_CACHE;
|
||||
|
|
@ -1160,6 +1157,17 @@ static unsigned char __swap_entry_free(struct swap_info_struct *p,
|
|||
usage = count | has_cache;
|
||||
p->swap_map[offset] = usage ? : SWAP_HAS_CACHE;
|
||||
|
||||
return usage;
|
||||
}
|
||||
|
||||
static unsigned char __swap_entry_free(struct swap_info_struct *p,
|
||||
swp_entry_t entry, unsigned char usage)
|
||||
{
|
||||
struct swap_cluster_info *ci;
|
||||
unsigned long offset = swp_offset(entry);
|
||||
|
||||
ci = lock_cluster_or_swap_info(p, offset);
|
||||
usage = __swap_entry_free_locked(p, offset, usage);
|
||||
unlock_cluster_or_swap_info(p, ci);
|
||||
|
||||
return usage;
|
||||
|
|
|
|||
Loading…
Reference in a new issue