diff options
Diffstat (limited to 'mm/filemap.c')
-rw-r--r-- | mm/filemap.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/mm/filemap.c b/mm/filemap.c index 140ebda9640f..88d719665a28 100644 --- a/mm/filemap.c +++ b/mm/filemap.c | |||
@@ -441,7 +441,7 @@ int add_to_page_cache_lru(struct page *page, struct address_space *mapping, | |||
441 | /* | 441 | /* |
442 | * Splice_read and readahead add shmem/tmpfs pages into the page cache | 442 | * Splice_read and readahead add shmem/tmpfs pages into the page cache |
443 | * before shmem_readpage has a chance to mark them as SwapBacked: they | 443 | * before shmem_readpage has a chance to mark them as SwapBacked: they |
444 | * need to go on the active_anon lru below, and mem_cgroup_cache_charge | 444 | * need to go on the anon lru below, and mem_cgroup_cache_charge |
445 | * (called in add_to_page_cache) needs to know where they're going too. | 445 | * (called in add_to_page_cache) needs to know where they're going too. |
446 | */ | 446 | */ |
447 | if (mapping_cap_swap_backed(mapping)) | 447 | if (mapping_cap_swap_backed(mapping)) |
@@ -452,7 +452,7 @@ int add_to_page_cache_lru(struct page *page, struct address_space *mapping, | |||
452 | if (page_is_file_cache(page)) | 452 | if (page_is_file_cache(page)) |
453 | lru_cache_add_file(page); | 453 | lru_cache_add_file(page); |
454 | else | 454 | else |
455 | lru_cache_add_active_anon(page); | 455 | lru_cache_add_anon(page); |
456 | } | 456 | } |
457 | return ret; | 457 | return ret; |
458 | } | 458 | } |
@@ -461,9 +461,15 @@ EXPORT_SYMBOL_GPL(add_to_page_cache_lru); | |||
461 | #ifdef CONFIG_NUMA | 461 | #ifdef CONFIG_NUMA |
462 | struct page *__page_cache_alloc(gfp_t gfp) | 462 | struct page *__page_cache_alloc(gfp_t gfp) |
463 | { | 463 | { |
464 | int n; | ||
465 | struct page *page; | ||
466 | |||
464 | if (cpuset_do_page_mem_spread()) { | 467 | if (cpuset_do_page_mem_spread()) { |
465 | int n = cpuset_mem_spread_node(); | 468 | get_mems_allowed(); |
466 | return alloc_pages_exact_node(n, gfp, 0); | 469 | n = cpuset_mem_spread_node(); |
470 | page = alloc_pages_exact_node(n, gfp, 0); | ||
471 | put_mems_allowed(); | ||
472 | return page; | ||
467 | } | 473 | } |
468 | return alloc_pages(gfp, 0); | 474 | return alloc_pages(gfp, 0); |
469 | } | 475 | } |