diff options
Diffstat (limited to 'mm/swapfile.c')
-rw-r--r-- | mm/swapfile.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/mm/swapfile.c b/mm/swapfile.c index 312fafe0ab6..3187079903f 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -510,6 +510,16 @@ void swap_free(swp_entry_t entry) } /* + * Called after dropping swapcache to decrease refcnt to swap entries. + */ +void swapcache_free(swp_entry_t entry, struct page *page) +{ + if (page) + mem_cgroup_uncharge_swapcache(page, entry); + return swap_free(entry); +} + +/* * How many references to page are currently swapped out? */ static inline int page_swapcount(struct page *page) @@ -1979,6 +1989,15 @@ bad_file: goto out; } +/* + * Called when allocating swap cache for exising swap entry, + */ +int swapcache_prepare(swp_entry_t entry) +{ + return swap_duplicate(entry); +} + + struct swap_info_struct * get_swap_info_struct(unsigned type) { |