Skip to content

Commit

Permalink
mm: Wait for writeback when grabbing pages to begin a write
Browse files Browse the repository at this point in the history
When grabbing a page for a buffered IO write, the mm should wait for writeback
on the page to complete so that the page does not become writable during the IO
operation.  This change is needed to provide page stability during writes for
all filesystems.

Signed-off-by: Darrick J. Wong <[email protected]>
Signed-off-by: Al Viro <[email protected]>
  • Loading branch information
Darrick J. Wong authored and Al Viro committed May 28, 2011
1 parent 9870246 commit 3d08bcc
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion mm/filemap.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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);
Expand Down

0 comments on commit 3d08bcc

Please sign in to comment.