diff options
Diffstat (limited to 'fs/fs-writeback.c')
-rw-r--r-- | fs/fs-writeback.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 482de0a92ca7..9e72d04e706e 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c | |||
@@ -651,6 +651,16 @@ static long wb_writeback(struct bdi_writeback *wb, | |||
651 | break; | 651 | break; |
652 | 652 | ||
653 | /* | 653 | /* |
654 | * Background writeout and kupdate-style writeback may | ||
655 | * run forever. Stop them if there is other work to do | ||
656 | * so that e.g. sync can proceed. They'll be restarted | ||
657 | * after the other works are all done. | ||
658 | */ | ||
659 | if ((work->for_background || work->for_kupdate) && | ||
660 | !list_empty(&wb->bdi->work_list)) | ||
661 | break; | ||
662 | |||
663 | /* | ||
654 | * For background writeout, stop when we are below the | 664 | * For background writeout, stop when we are below the |
655 | * background dirty threshold | 665 | * background dirty threshold |
656 | */ | 666 | */ |