vmscan: do not unconditionally treat zones that fail zone_reclaim() as full
[safe/jmp/linux-2.6] / mm / filemap.c
index 2e9bcc2..2239671 100644 (file)
@@ -521,7 +521,7 @@ struct page *__page_cache_alloc(gfp_t gfp)
 {
        if (cpuset_do_page_mem_spread()) {
                int n = cpuset_mem_spread_node();
-               return alloc_pages_node(n, gfp, 0);
+               return alloc_pages_exact_node(n, gfp, 0);
        }
        return alloc_pages(gfp, 0);
 }
@@ -1471,7 +1471,8 @@ static void do_sync_mmap_readahead(struct vm_area_struct *vma,
 
        if (VM_SequentialReadHint(vma) ||
                        offset - 1 == (ra->prev_pos >> PAGE_CACHE_SHIFT)) {
-               page_cache_sync_readahead(mapping, ra, file, offset, 1);
+               page_cache_sync_readahead(mapping, ra, file, offset,
+                                         ra->ra_pages);
                return;
        }