diff options
Diffstat (limited to 'fs/fs-writeback.c')
-rw-r--r-- | fs/fs-writeback.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index fe190a8b0bc8..e4504299f4a5 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c | |||
@@ -464,6 +464,7 @@ writeback_single_inode(struct inode *inode, struct writeback_control *wbc) | |||
464 | * No need to add it back to the LRU. | 464 | * No need to add it back to the LRU. |
465 | */ | 465 | */ |
466 | list_del_init(&inode->i_wb_list); | 466 | list_del_init(&inode->i_wb_list); |
467 | wbc->inodes_written++; | ||
467 | } | 468 | } |
468 | } | 469 | } |
469 | inode_sync_complete(inode); | 470 | inode_sync_complete(inode); |
@@ -725,6 +726,7 @@ static long wb_writeback(struct bdi_writeback *wb, | |||
725 | wbc.more_io = 0; | 726 | wbc.more_io = 0; |
726 | wbc.nr_to_write = write_chunk; | 727 | wbc.nr_to_write = write_chunk; |
727 | wbc.pages_skipped = 0; | 728 | wbc.pages_skipped = 0; |
729 | wbc.inodes_written = 0; | ||
728 | 730 | ||
729 | trace_wbc_writeback_start(&wbc, wb->bdi); | 731 | trace_wbc_writeback_start(&wbc, wb->bdi); |
730 | if (work->sb) | 732 | if (work->sb) |
@@ -741,6 +743,8 @@ static long wb_writeback(struct bdi_writeback *wb, | |||
741 | */ | 743 | */ |
742 | if (wbc.nr_to_write <= 0) | 744 | if (wbc.nr_to_write <= 0) |
743 | continue; | 745 | continue; |
746 | if (wbc.inodes_written) | ||
747 | continue; | ||
744 | /* | 748 | /* |
745 | * Didn't write everything and we don't have more IO, bail | 749 | * Didn't write everything and we don't have more IO, bail |
746 | */ | 750 | */ |