diff options
Diffstat (limited to 'fs/fs-writeback.c')
-rw-r--r-- | fs/fs-writeback.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 517f211a3bd4..92d353e069dc 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c | |||
@@ -743,11 +743,17 @@ static long wb_writeback(struct bdi_writeback *wb, | |||
743 | if (work->for_background && !over_bground_thresh(wb->bdi)) | 743 | if (work->for_background && !over_bground_thresh(wb->bdi)) |
744 | break; | 744 | break; |
745 | 745 | ||
746 | /* | ||
747 | * Kupdate and background works are special and we want to | ||
748 | * include all inodes that need writing. Livelock avoidance is | ||
749 | * handled by these works yielding to any other work so we are | ||
750 | * safe. | ||
751 | */ | ||
746 | if (work->for_kupdate) { | 752 | if (work->for_kupdate) { |
747 | oldest_jif = jiffies - | 753 | oldest_jif = jiffies - |
748 | msecs_to_jiffies(dirty_expire_interval * 10); | 754 | msecs_to_jiffies(dirty_expire_interval * 10); |
749 | work->older_than_this = &oldest_jif; | 755 | } else if (work->for_background) |
750 | } | 756 | oldest_jif = jiffies; |
751 | 757 | ||
752 | trace_writeback_start(wb->bdi, work); | 758 | trace_writeback_start(wb->bdi, work); |
753 | if (list_empty(&wb->b_io)) | 759 | if (list_empty(&wb->b_io)) |