From c5a2331b9d26add8f87259b30ce20a99935637e2 Mon Sep 17 00:00:00 2001 From: Johannes Weiner Date: Fri, 22 Feb 2013 16:32:20 -0800 Subject: [PATCH] --- yaml --- r: 356491 b: refs/heads/master c: af34770e55fd899c96d8d73bdc04dbc956096650 h: refs/heads/master i: 356489: 9f53283a53485b8e1b9ccfb1932910da1da9bc26 356487: 8d37749595638524ce91b7836b0163683b0af14b v: v3 --- [refs] | 2 +- trunk/mm/ksm.c | 6 ------ trunk/mm/memory.c | 5 ++++- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index 857b89a02340..f8c3a58e0c2d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9b4f98cdac9683ee9cdb28c582a81223f0c10a3f +refs/heads/master: af34770e55fd899c96d8d73bdc04dbc956096650 diff --git a/trunk/mm/ksm.c b/trunk/mm/ksm.c index 51573858938d..e1f1f278075f 100644 --- a/trunk/mm/ksm.c +++ b/trunk/mm/ksm.c @@ -1590,13 +1590,7 @@ struct page *ksm_does_need_to_copy(struct page *page, SetPageDirty(new_page); __SetPageUptodate(new_page); - SetPageSwapBacked(new_page); __set_page_locked(new_page); - - if (!mlocked_vma_newpage(vma, new_page)) - lru_cache_add_lru(new_page, LRU_ACTIVE_ANON); - else - add_page_to_unevictable_list(new_page); } return new_page; diff --git a/trunk/mm/memory.c b/trunk/mm/memory.c index bb1369f7b9b4..0abd07097ec6 100644 --- a/trunk/mm/memory.c +++ b/trunk/mm/memory.c @@ -3044,7 +3044,10 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma, } flush_icache_page(vma, page); set_pte_at(mm, address, page_table, pte); - do_page_add_anon_rmap(page, vma, address, exclusive); + if (swapcache) /* ksm created a completely new copy */ + page_add_new_anon_rmap(page, vma, address); + else + do_page_add_anon_rmap(page, vma, address, exclusive); /* It's better to call commit-charge after rmap is established */ mem_cgroup_commit_charge_swapin(page, ptr);