summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mm/ksm.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/mm/ksm.c b/mm/ksm.c
index 43bc893470b4..b5b907cb0f90 100644
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -800,6 +800,8 @@ static int replace_page(struct vm_area_struct *vma, struct page *page,
set_pte_at_notify(mm, addr, ptep, mk_pte(kpage, vma->vm_page_prot));
page_remove_rmap(page);
+ if (!page_mapped(page))
+ try_to_free_swap(page);
put_page(page);
pte_unmap_unlock(ptep, ptl);