From b12f41496e9e67d93d15de6c48ac8c154651082f Mon Sep 17 00:00:00 2001 From: Hugh Dickins Date: Mon, 14 Dec 2009 17:59:30 -0800 Subject: [PATCH] --- yaml --- r: 176297 b: refs/heads/master c: 407f9c8b0889ced1dbe2f9157e4e60c61329d5c9 h: refs/heads/master i: 176295: e6da40c9de5b0ef00ccddbbc4d0f46319019d069 v: v3 --- [refs] | 2 +- trunk/mm/memcontrol.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 84c42c6dde78..f9a1f7b185bf 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 80e148226028257ec0a1909d99b2c40d0ffe17f2 +refs/heads/master: 407f9c8b0889ced1dbe2f9157e4e60c61329d5c9 diff --git a/trunk/mm/memcontrol.c b/trunk/mm/memcontrol.c index c31a310aa146..e0c2066495e3 100644 --- a/trunk/mm/memcontrol.c +++ b/trunk/mm/memcontrol.c @@ -1737,11 +1737,12 @@ int mem_cgroup_try_charge_swapin(struct mm_struct *mm, goto charge_cur_mm; /* * A racing thread's fault, or swapoff, may have already updated - * the pte, and even removed page from swap cache: return success - * to go on to do_swap_page()'s pte_same() test, which should fail. + * the pte, and even removed page from swap cache: in those cases + * do_swap_page()'s pte_same() test will fail; but there's also a + * KSM case which does need to charge the page. */ if (!PageSwapCache(page)) - return 0; + goto charge_cur_mm; mem = try_get_mem_cgroup_from_swapcache(page); if (!mem) goto charge_cur_mm;