diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/fs-writeback.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 2c947da39f6e..5826992910e9 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c | |||
@@ -693,6 +693,16 @@ static inline bool over_bground_thresh(void) | |||
693 | } | 693 | } |
694 | 694 | ||
695 | /* | 695 | /* |
696 | * Called under wb->list_lock. If there are multiple wb per bdi, | ||
697 | * only the flusher working on the first wb should do it. | ||
698 | */ | ||
699 | static void wb_update_bandwidth(struct bdi_writeback *wb, | ||
700 | unsigned long start_time) | ||
701 | { | ||
702 | __bdi_update_bandwidth(wb->bdi, start_time); | ||
703 | } | ||
704 | |||
705 | /* | ||
696 | * Explicit flushing or periodic writeback of "old" data. | 706 | * Explicit flushing or periodic writeback of "old" data. |
697 | * | 707 | * |
698 | * Define "old": the first time one of an inode's pages is dirtied, we mark the | 708 | * Define "old": the first time one of an inode's pages is dirtied, we mark the |
@@ -710,6 +720,7 @@ static inline bool over_bground_thresh(void) | |||
710 | static long wb_writeback(struct bdi_writeback *wb, | 720 | static long wb_writeback(struct bdi_writeback *wb, |
711 | struct wb_writeback_work *work) | 721 | struct wb_writeback_work *work) |
712 | { | 722 | { |
723 | unsigned long wb_start = jiffies; | ||
713 | long nr_pages = work->nr_pages; | 724 | long nr_pages = work->nr_pages; |
714 | unsigned long oldest_jif; | 725 | unsigned long oldest_jif; |
715 | struct inode *inode; | 726 | struct inode *inode; |
@@ -758,6 +769,8 @@ static long wb_writeback(struct bdi_writeback *wb, | |||
758 | progress = __writeback_inodes_wb(wb, work); | 769 | progress = __writeback_inodes_wb(wb, work); |
759 | trace_writeback_written(wb->bdi, work); | 770 | trace_writeback_written(wb->bdi, work); |
760 | 771 | ||
772 | wb_update_bandwidth(wb, wb_start); | ||
773 | |||
761 | /* | 774 | /* |
762 | * Did we write something? Try for more | 775 | * Did we write something? Try for more |
763 | * | 776 | * |