diff options
-rw-r--r-- | fs/fs-writeback.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 76f546d56a64..437a7431b4ea 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c | |||
@@ -978,8 +978,13 @@ int bdi_writeback_task(struct bdi_writeback *wb) | |||
978 | if (dirty_writeback_interval) { | 978 | if (dirty_writeback_interval) { |
979 | wait_jiffies = msecs_to_jiffies(dirty_writeback_interval * 10); | 979 | wait_jiffies = msecs_to_jiffies(dirty_writeback_interval * 10); |
980 | schedule_timeout_interruptible(wait_jiffies); | 980 | schedule_timeout_interruptible(wait_jiffies); |
981 | } else | 981 | } else { |
982 | schedule(); | 982 | set_current_state(TASK_INTERRUPTIBLE); |
983 | if (list_empty_careful(&wb->bdi->work_list) && | ||
984 | !kthread_should_stop()) | ||
985 | schedule(); | ||
986 | __set_current_state(TASK_RUNNING); | ||
987 | } | ||
983 | 988 | ||
984 | try_to_freeze(); | 989 | try_to_freeze(); |
985 | } | 990 | } |