summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2004-04-22 16:32:08 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-04-22 16:32:08 -0700
commit1ed73535789d5558f91d214e089a659ab59ae80f (patch)
treebdee2ad5b4b870f8695519be8c0a4dac716ad966 /include/linux
parent8a51beef39cfd11a4f0ba850813cd99c5adac2c3 (diff)
[PATCH] writeback livelock fix
If a filesystem's ->writepage implementation repeatedly refuses to write the page (it keeps on redirtying it instead) (reiserfs seems to do this) then the writeback logic can get stuck repeately trying to write the same page. Fix that up by correctly setting wbc->pages_skipped, to tell the writeback logic that things aren't working out.
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/mm.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 103f14358d1f..46c59a68aaa4 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -486,6 +486,8 @@ int get_user_pages(struct task_struct *tsk, struct mm_struct *mm, unsigned long
int __set_page_dirty_buffers(struct page *page);
int __set_page_dirty_nobuffers(struct page *page);
+int redirty_page_for_writepage(struct writeback_control *wbc,
+ struct page *page);
int FASTCALL(set_page_dirty(struct page *page));
int set_page_dirty_lock(struct page *page);
int clear_page_dirty_for_io(struct page *page);