diff options
author | Christoph Lameter <clameter@sgi.com> | 2007-05-16 02:57:09 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-17 00:19:15 -0400 |
commit | 43c0f3d25c602dc96b201ed81ffda0bc600ff969 (patch) | |
tree | 88ecad9eda4797693a97e0bcdf7ced13be99f3bd /mm/filemap.c | |
parent | 8382d2b9a7205fe1fb262f59237715a40c911880 (diff) |
Fix: find_or_create_page skips cpuset memory spreading.
We call alloc_page where we should be calling __page_cache_alloc.
__page_cache_alloc performs cpuset memory spreading. alloc_page does not.
There is no reason that pages allocated via find_or_create should be
exempt.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/filemap.c')
-rw-r--r-- | mm/filemap.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/mm/filemap.c b/mm/filemap.c index 7b48b2ad00e7..edb1b0b5cc8d 100644 --- a/mm/filemap.c +++ b/mm/filemap.c | |||
@@ -670,7 +670,8 @@ repeat: | |||
670 | page = find_lock_page(mapping, index); | 670 | page = find_lock_page(mapping, index); |
671 | if (!page) { | 671 | if (!page) { |
672 | if (!cached_page) { | 672 | if (!cached_page) { |
673 | cached_page = alloc_page(gfp_mask); | 673 | cached_page = |
674 | __page_cache_alloc(gfp_mask); | ||
674 | if (!cached_page) | 675 | if (!cached_page) |
675 | return NULL; | 676 | return NULL; |
676 | } | 677 | } |