diff options
Diffstat (limited to 'fs/fs-writeback.c')
-rw-r--r-- | fs/fs-writeback.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 7608880b5c58..b7c7586caea1 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c | |||
@@ -530,7 +530,8 @@ void writeback_inodes_wb(struct bdi_writeback *wb, | |||
530 | { | 530 | { |
531 | int ret = 0; | 531 | int ret = 0; |
532 | 532 | ||
533 | wbc->wb_start = jiffies; /* livelock avoidance */ | 533 | if (!wbc->wb_start) |
534 | wbc->wb_start = jiffies; /* livelock avoidance */ | ||
534 | spin_lock(&inode_lock); | 535 | spin_lock(&inode_lock); |
535 | if (!wbc->for_kupdate || list_empty(&wb->b_io)) | 536 | if (!wbc->for_kupdate || list_empty(&wb->b_io)) |
536 | queue_io(wb, wbc->older_than_this); | 537 | queue_io(wb, wbc->older_than_this); |
@@ -559,7 +560,6 @@ static void __writeback_inodes_sb(struct super_block *sb, | |||
559 | { | 560 | { |
560 | WARN_ON(!rwsem_is_locked(&sb->s_umount)); | 561 | WARN_ON(!rwsem_is_locked(&sb->s_umount)); |
561 | 562 | ||
562 | wbc->wb_start = jiffies; /* livelock avoidance */ | ||
563 | spin_lock(&inode_lock); | 563 | spin_lock(&inode_lock); |
564 | if (!wbc->for_kupdate || list_empty(&wb->b_io)) | 564 | if (!wbc->for_kupdate || list_empty(&wb->b_io)) |
565 | queue_io(wb, wbc->older_than_this); | 565 | queue_io(wb, wbc->older_than_this); |
@@ -625,6 +625,7 @@ static long wb_writeback(struct bdi_writeback *wb, | |||
625 | wbc.range_end = LLONG_MAX; | 625 | wbc.range_end = LLONG_MAX; |
626 | } | 626 | } |
627 | 627 | ||
628 | wbc.wb_start = jiffies; /* livelock avoidance */ | ||
628 | for (;;) { | 629 | for (;;) { |
629 | /* | 630 | /* |
630 | * Stop writeback when nr_pages has been consumed | 631 | * Stop writeback when nr_pages has been consumed |