If the page is mapped from mm/vmscan.c if (!page->mapping || page_count(page) > 1) { spin_unlock(&pagecache_lock); UnlockPage(page); page_mapped: if (--max_mapped < 0) { spin_unlock(&pagemap_lru_lock); shrink_dcache_memory(vm_scan_ratio, gfp_mask); shrink_icache_memory(vm_scan_ratio, gfp_mask); shrink_dqcache_memory(vm_scan_ratio, gfp_mask); if (!*failed_swapout) *failed_swapout = !swap_out(classzone); max_mapped = nr_pages * vm_mapped_ratio; spin_lock(&pagemap_lru_lock); } continue; }