diff options
Diffstat (limited to 'mm/page-writeback.c')
| -rw-r--r-- | mm/page-writeback.c | 27 | 
1 files changed, 11 insertions, 16 deletions
diff --git a/mm/page-writeback.c b/mm/page-writeback.c index c09ef5219cbe..e3bccac1f025 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c  | |||
| @@ -985,22 +985,16 @@ continue_unlock: | |||
| 985 | } | 985 | } | 
| 986 | } | 986 | } | 
| 987 | 987 | ||
| 988 | if (wbc->nr_to_write > 0) { | 988 | /* | 
| 989 | if (--wbc->nr_to_write == 0 && | 989 | * We stop writing back only if we are not doing | 
| 990 | wbc->sync_mode == WB_SYNC_NONE) { | 990 | * integrity sync. In case of integrity sync we have to | 
| 991 | /* | 991 | * keep going until we have written all the pages | 
| 992 | * We stop writing back only if we are | 992 | * we tagged for writeback prior to entering this loop. | 
| 993 | * not doing integrity sync. In case of | 993 | */ | 
| 994 | * integrity sync we have to keep going | 994 | if (--wbc->nr_to_write <= 0 && | 
| 995 | * because someone may be concurrently | 995 | wbc->sync_mode == WB_SYNC_NONE) { | 
| 996 | * dirtying pages, and we might have | 996 | done = 1; | 
| 997 | * synced a lot of newly appeared dirty | 997 | break; | 
| 998 | * pages, but have not synced all of the | ||
| 999 | * old dirty pages. | ||
| 1000 | */ | ||
| 1001 | done = 1; | ||
| 1002 | break; | ||
| 1003 | } | ||
| 1004 | } | 998 | } | 
| 1005 | } | 999 | } | 
| 1006 | pagevec_release(&pvec); | 1000 | pagevec_release(&pvec); | 
| @@ -1132,6 +1126,7 @@ void account_page_dirtied(struct page *page, struct address_space *mapping) | |||
| 1132 | task_io_account_write(PAGE_CACHE_SIZE); | 1126 | task_io_account_write(PAGE_CACHE_SIZE); | 
| 1133 | } | 1127 | } | 
| 1134 | } | 1128 | } | 
| 1129 | EXPORT_SYMBOL(account_page_dirtied); | ||
| 1135 | 1130 | ||
| 1136 | /* | 1131 | /* | 
| 1137 | * For address_spaces which do not use buffers. Just tag the page as dirty in | 1132 | * For address_spaces which do not use buffers. Just tag the page as dirty in | 
