diff options
| author | Andrew Morton <akpm@osdl.org> | 2004-04-22 16:32:08 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-04-22 16:32:08 -0700 |
| commit | 1ed73535789d5558f91d214e089a659ab59ae80f (patch) | |
| tree | bdee2ad5b4b870f8695519be8c0a4dac716ad966 /include/linux | |
| parent | 8a51beef39cfd11a4f0ba850813cd99c5adac2c3 (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.h | 2 |
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); |
