From: Hugh Dickins remove_mapping() must check against page_mapping(page): &swapper_space is implicit, never actually stored in page->mapping. Signed-off-by: Hugh Dickins Cc: Nick Piggin Signed-off-by: Andrew Morton --- mm/vmscan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN mm/vmscan.c~mm-remove_mapping-safeness-fix mm/vmscan.c --- a/mm/vmscan.c~mm-remove_mapping-safeness-fix +++ a/mm/vmscan.c @@ -378,7 +378,7 @@ static pageout_t pageout(struct page *pa int remove_mapping(struct address_space *mapping, struct page *page) { BUG_ON(!PageLocked(page)); - BUG_ON(mapping != page->mapping); + BUG_ON(mapping != page_mapping(page)); write_lock_irq(&mapping->tree_lock); _