Index: linux-2.6/include/linux/pagemap.h =================================================================== --- linux-2.6.orig/include/linux/pagemap.h 2006-10-17 00:29:40.000000000 +1000 +++ linux-2.6/include/linux/pagemap.h 2006-10-17 00:29:50.000000000 +1000 @@ -57,7 +57,7 @@ extern struct page *page_cache_alloc_col #else static inline struct page *page_cache_alloc(struct address_space *x) { - return alloc_pages(mapping_gfp_mask(x), 0); + return alloc_pages(mapping_gfp_mask(x)&~__GFP_FS, 0); } static inline struct page *page_cache_alloc_cold(struct address_space *x) Index: linux-2.6/mm/filemap.c =================================================================== --- linux-2.6.orig/mm/filemap.c 2006-10-17 00:29:49.000000000 +1000 +++ linux-2.6/mm/filemap.c 2006-10-17 00:29:50.000000000 +1000 @@ -471,9 +471,9 @@ struct page *page_cache_alloc(struct add { if (cpuset_do_page_mem_spread()) { int n = cpuset_mem_spread_node(); - return alloc_pages_node(n, mapping_gfp_mask(x), 0); + return alloc_pages_node(n, mapping_gfp_mask(x)&~__GFP_FS, 0); } - return alloc_pages(mapping_gfp_mask(x), 0); + return alloc_pages(mapping_gfp_mask(x)&~__GFP_FS, 0); } EXPORT_SYMBOL(page_cache_alloc); @@ -1864,7 +1864,7 @@ repeat: return NULL; } err = add_to_page_cache(*cached_page, mapping, - index, GFP_KERNEL); + index, GFP_KERNEL&~__GFP_FS); if (err == -EEXIST) goto repeat; if (err == 0) {