From f25320bb87e5e1cd994a3217ceb5632c77e0d09e Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Fri, 27 May 2011 12:23:34 -0700 Subject: [PATCH] --- yaml --- r: 252731 b: refs/heads/master c: 3d08bcc887a1c8d12be8d81f747ffa2e8a44b67b h: refs/heads/master i: 252729: 3f489744abfd6a886b220a7952afc79eba8b1c02 252727: 552087410d55cebdcc9227a9aedcdf07887497e5 v: v3 --- [refs] | 2 +- trunk/mm/filemap.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 1e88786706e9..6c2c48930f26 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 98702467f829177b3993f17da9fe5c202d160e5e +refs/heads/master: 3d08bcc887a1c8d12be8d81f747ffa2e8a44b67b diff --git a/trunk/mm/filemap.c b/trunk/mm/filemap.c index bcdc393b6580..dac95a24deac 100644 --- a/trunk/mm/filemap.c +++ b/trunk/mm/filemap.c @@ -2327,7 +2327,7 @@ struct page *grab_cache_page_write_begin(struct address_space *mapping, repeat: page = find_lock_page(mapping, index); if (page) - return page; + goto found; page = __page_cache_alloc(mapping_gfp_mask(mapping) & ~gfp_notmask); if (!page) @@ -2340,6 +2340,8 @@ struct page *grab_cache_page_write_begin(struct address_space *mapping, goto repeat; return NULL; } +found: + wait_on_page_writeback(page); return page; } EXPORT_SYMBOL(grab_cache_page_write_begin);