Commit 611edfed authored by Sasha Levin's avatar Sasha Levin Committed by Konrad Rzeszutek Wilk

mm: frontswap: split out function to clear a page out

Signed-off-by: default avatarSasha Levin <levinsasha928@gmail.com>
Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
parent f9f08103
...@@ -114,6 +114,12 @@ void __frontswap_init(unsigned type) ...@@ -114,6 +114,12 @@ void __frontswap_init(unsigned type)
} }
EXPORT_SYMBOL(__frontswap_init); EXPORT_SYMBOL(__frontswap_init);
static inline void __frontswap_clear(struct swap_info_struct *sis, pgoff_t offset)
{
frontswap_clear(sis, offset);
atomic_dec(&sis->frontswap_pages);
}
/* /*
* "Store" data from a page to frontswap and associate it with the page's * "Store" data from a page to frontswap and associate it with the page's
* swaptype and offset. Page must be locked and in the swap cache. * swaptype and offset. Page must be locked and in the swap cache.
...@@ -145,10 +151,8 @@ int __frontswap_store(struct page *page) ...@@ -145,10 +151,8 @@ int __frontswap_store(struct page *page)
the (older) page from frontswap the (older) page from frontswap
*/ */
inc_frontswap_failed_stores(); inc_frontswap_failed_stores();
if (dup) { if (dup)
frontswap_clear(sis, offset); __frontswap_clear(sis, offset);
atomic_dec(&sis->frontswap_pages);
}
} }
if (frontswap_writethrough_enabled) if (frontswap_writethrough_enabled)
/* report failure so swap also writes to swap device */ /* report failure so swap also writes to swap device */
...@@ -191,8 +195,7 @@ void __frontswap_invalidate_page(unsigned type, pgoff_t offset) ...@@ -191,8 +195,7 @@ void __frontswap_invalidate_page(unsigned type, pgoff_t offset)
BUG_ON(sis == NULL); BUG_ON(sis == NULL);
if (frontswap_test(sis, offset)) { if (frontswap_test(sis, offset)) {
frontswap_ops.invalidate_page(type, offset); frontswap_ops.invalidate_page(type, offset);
atomic_dec(&sis->frontswap_pages); __frontswap_clear(sis, offset);
frontswap_clear(sis, offset);
inc_frontswap_invalidates(); inc_frontswap_invalidates();
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment