Message ID | 1317367044-475-5-git-send-email-jweiner@redhat.com |
---|---|
State | Not Applicable, archived |
Headers | show |
On Fri 30-09-11 09:17:23, Johannes Weiner wrote: > Tell the page allocator that pages allocated through > grab_cache_page_write_begin() are expected to become dirty soon. > > Signed-off-by: Johannes Weiner <jweiner@redhat.com> > Reviewed-by: Rik van Riel <riel@redhat.com> > Acked-by: Mel Gorman <mgorman@suse.de> > Reviewed-by: Minchan Kim <minchan.kim@gmail.com> Reviewed-by: Michal Hocko <mhocko@suse.cz> > --- > mm/filemap.c | 5 ++++- > 1 files changed, 4 insertions(+), 1 deletions(-) > > diff --git a/mm/filemap.c b/mm/filemap.c > index 645a080..cf0352d 100644 > --- a/mm/filemap.c > +++ b/mm/filemap.c > @@ -2349,8 +2349,11 @@ struct page *grab_cache_page_write_begin(struct address_space *mapping, > pgoff_t index, unsigned flags) > { > int status; > + gfp_t gfp_mask; > struct page *page; > gfp_t gfp_notmask = 0; > + > + gfp_mask = mapping_gfp_mask(mapping) | __GFP_WRITE; > if (flags & AOP_FLAG_NOFS) > gfp_notmask = __GFP_FS; > repeat: > @@ -2358,7 +2361,7 @@ repeat: > if (page) > goto found; > > - page = __page_cache_alloc(mapping_gfp_mask(mapping) & ~gfp_notmask); > + page = __page_cache_alloc(gfp_mask & ~gfp_notmask); > if (!page) > return NULL; > status = add_to_page_cache_lru(page, mapping, index, > -- > 1.7.6.2 > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@kvack.org. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ > Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
diff --git a/mm/filemap.c b/mm/filemap.c index 645a080..cf0352d 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -2349,8 +2349,11 @@ struct page *grab_cache_page_write_begin(struct address_space *mapping, pgoff_t index, unsigned flags) { int status; + gfp_t gfp_mask; struct page *page; gfp_t gfp_notmask = 0; + + gfp_mask = mapping_gfp_mask(mapping) | __GFP_WRITE; if (flags & AOP_FLAG_NOFS) gfp_notmask = __GFP_FS; repeat: @@ -2358,7 +2361,7 @@ repeat: if (page) goto found; - page = __page_cache_alloc(mapping_gfp_mask(mapping) & ~gfp_notmask); + page = __page_cache_alloc(gfp_mask & ~gfp_notmask); if (!page) return NULL; status = add_to_page_cache_lru(page, mapping, index,