From: Christoph Lameter Page migration still checked for mapping being NULL after taking the tree_lock. However the mapping never changes for a locked page. Remove two more checks for mapping being NULL. Signed-off-by: Christoph Lameter Signed-off-by: Andrew Morton --- mm/migrate.c | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) diff -puN mm/migrate.c~swapless-page-migration-modify-core-logic-remove-useless-mapping-checks mm/migrate.c --- devel/mm/migrate.c~swapless-page-migration-modify-core-logic-remove-useless-mapping-checks 2006-05-11 00:03:10.000000000 -0700 +++ devel-akpm/mm/migrate.c 2006-05-11 00:03:10.000000000 -0700 @@ -256,7 +256,7 @@ static int migrate_page_move_mapping(str if (!mapping) { /* Anonymous page */ - if (page_count(page) != 1 || !page->mapping) + if (page_count(page) != 1) return -EAGAIN; return 0; } @@ -267,8 +267,7 @@ static int migrate_page_move_mapping(str &mapping->page_tree, page_index(page)); - if (!page_mapping(page) || - page_count(page) != 2 + !!PagePrivate(page) || + if (page_count(page) != 2 + !!PagePrivate(page) || *radix_pointer != page) { write_unlock_irq(&mapping->tree_lock); return -EAGAIN; _