mm: fix bad rss-counter if remap_file_pages raced migration
authorHugh Dickins <hughd@google.com>
Wed, 19 Mar 2014 00:38:38 +0000 (17:38 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 19 Mar 2014 23:21:49 +0000 (16:21 -0700)
commit887843961c4b4681ee993c36d4997bf4b4aa8253
treeedb4f2e829dbabeab258033248a5f29adaf60eb6
parent7c1cfacca2083db519317f49f31e143d97fd554a
mm: fix bad rss-counter if remap_file_pages raced migration

Fix some "Bad rss-counter state" reports on exit, arising from the
interaction between page migration and remap_file_pages(): zap_pte()
must count a migration entry when zapping it.

And yes, it is possible (though very unusual) to find an anon page or
swap entry in a VM_SHARED nonlinear mapping: coming from that horrid
get_user_pages(write, force) case which COWs even in a shared mapping.

Signed-off-by: Hugh Dickins <hughd@google.com>
Tested-by: Sasha Levin sasha.levin@oracle.com>
Tested-by: Dave Jones davej@redhat.com>
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/fremap.c