aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Chinner <dgc@sgi.com>2006-12-20 18:24:01 -0500
committerLinus Torvalds <torvalds@woody.osdl.org>2006-12-21 13:01:08 -0500
commit921320210bd2ec4f17053d283355b73048ac0e56 (patch)
treed2a0b5d60d2f3518e717038dd1eec5eaf4fab13b
parent9280f6822c2d7112b47107251fce307aefb31f35 (diff)
[PATCH] Fix XFS after clear_page_dirty() removal
XFS appears to call clear_page_dirty to get the mapping tree dirty tag set correctly at the same time the page dirty flag is cleared. I note that this can be done by set_page_writeback() if we clear the dirty flag on the page first when we are writing back the entire page. Hence it seems to me that the XFS call to clear_page_dirty() could easily be substituted by clear_page_dirty_for_io() followed by a call to set_page_writeback() to get the mapping tree tags set correctly after the page has been marked clean. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--fs/xfs/linux-2.6/xfs_aops.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c
index b56eb754e2d2..7b54461695e2 100644
--- a/fs/xfs/linux-2.6/xfs_aops.c
+++ b/fs/xfs/linux-2.6/xfs_aops.c
@@ -341,9 +341,9 @@ xfs_start_page_writeback(
341{ 341{
342 ASSERT(PageLocked(page)); 342 ASSERT(PageLocked(page));
343 ASSERT(!PageWriteback(page)); 343 ASSERT(!PageWriteback(page));
344 set_page_writeback(page);
345 if (clear_dirty) 344 if (clear_dirty)
346 clear_page_dirty(page); 345 clear_page_dirty_for_io(page);
346 set_page_writeback(page);
347 unlock_page(page); 347 unlock_page(page);
348 if (!buffers) { 348 if (!buffers) {
349 end_page_writeback(page); 349 end_page_writeback(page);