From 24c697b28acee01e7b189a6fcd23d3b916915e84 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Thu, 29 Nov 2012 16:22:01 -0800 Subject: [PATCH] mm: Don't use CMA pages for writes If CMA pages are used for writes, the writes may not complete fast enough for CMA to be allocated within a reasonable amount of time. If we get a CMA page, get another one to use instead. Change-Id: I19d8ba655da7525d68d5947337d500566998971c Signed-off-by: Laura Abbott Signed-off-by: Mitchel Humpherys --- mm/filemap.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mm/filemap.c b/mm/filemap.c index 79c4b2b0b14..8ed5c5c0be5 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -2343,9 +2343,17 @@ repeat: if (page) goto found; +retry: page = __page_cache_alloc(gfp_mask & ~gfp_notmask); if (!page) return NULL; + + if (is_cma_pageblock(page)) { + __free_page(page); + gfp_notmask |= __GFP_MOVABLE; + goto retry; + } + status = add_to_page_cache_lru(page, mapping, index, GFP_KERNEL & ~gfp_notmask); if (unlikely(status)) {