diff options
author | Konstantin Khlebnikov <khlebnikov@openvz.org> | 2012-02-03 15:37:13 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-02-03 16:16:40 -0800 |
commit | 35512ecaef03250fe50ad81430dd467f01d9a96b (patch) | |
tree | 66ba9202c36c4267f765b8980f2c70d7c3eb4b90 | |
parent | a1b58c237b73f10221b31e05b47a6565558207ef (diff) | |
download | op-kernel-dev-35512ecaef03250fe50ad81430dd467f01d9a96b.zip op-kernel-dev-35512ecaef03250fe50ad81430dd467f01d9a96b.tar.gz |
mm: postpone migrated page mapping reset
Postpone resetting page->mapping until the final remove_migration_ptes().
Otherwise the expression PageAnon(migration_entry_to_page(entry)) does not
work.
Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
Cc: Hugh Dickins <hughd@google.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | mm/migrate.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/migrate.c b/mm/migrate.c index 9871a56..df141f6 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -445,7 +445,6 @@ void migrate_page_copy(struct page *newpage, struct page *page) ClearPageSwapCache(page); ClearPagePrivate(page); set_page_private(page, 0); - page->mapping = NULL; /* * If any waiters have accumulated on the new page then @@ -667,6 +666,7 @@ static int move_to_new_page(struct page *newpage, struct page *page, } else { if (remap_swapcache) remove_migration_ptes(page, newpage); + page->mapping = NULL; } unlock_page(newpage); |