memcg: revert fix to mapcount check for this release
authorHugh Dickins <hughd@google.com>
Fri, 9 Mar 2012 21:37:32 +0000 (13:37 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 9 Mar 2012 23:32:20 +0000 (15:32 -0800)
Respectfully revert commit e6ca7b89dc76 "memcg: fix mapcount check
in move charge code for anonymous page" for the 3.3 release, so that
it behaves exactly like releases 2.6.35 through 3.2 in this respect.

Horiguchi-san's commit is correct in itself, 1 makes much more sense
than 2 in that check; but it does not go far enough - swapcount
should be considered too - if we really want such a check at all.

We appear to have reached agreement now, and expect that 3.4 will
remove the mapcount check, but had better not make 3.3 different.

Signed-off-by: Hugh Dickins <hughd@google.com>
Reviewed-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/memcontrol.c

index 5585dc3d36466189b0d89adf8e86f424372bdd23..d0e57a3cda1899c156274d53e49e11be42957f87 100644 (file)
@@ -5075,7 +5075,7 @@ static struct page *mc_handle_present_pte(struct vm_area_struct *vma,
                return NULL;
        if (PageAnon(page)) {
                /* we don't move shared anon */
-               if (!move_anon() || page_mapcount(page) > 1)
+               if (!move_anon() || page_mapcount(page) > 2)
                        return NULL;
        } else if (!move_file())
                /* we ignore mapcount for file pages */