aboutsummaryrefslogtreecommitdiffstats
path: root/mm/page-writeback.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/page-writeback.c')
-rw-r--r--mm/page-writeback.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 5fa63bdf52e4..b3dbb8040ed5 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -835,7 +835,6 @@ int write_cache_pages(struct address_space *mapping,
835 pgoff_t done_index; 835 pgoff_t done_index;
836 int cycled; 836 int cycled;
837 int range_whole = 0; 837 int range_whole = 0;
838 long nr_to_write = wbc->nr_to_write;
839 838
840 pagevec_init(&pvec, 0); 839 pagevec_init(&pvec, 0);
841 if (wbc->range_cyclic) { 840 if (wbc->range_cyclic) {
@@ -935,11 +934,10 @@ continue_unlock:
935 done = 1; 934 done = 1;
936 break; 935 break;
937 } 936 }
938 } 937 }
939 938
940 if (nr_to_write > 0) { 939 if (wbc->nr_to_write > 0) {
941 nr_to_write--; 940 if (--wbc->nr_to_write == 0 &&
942 if (nr_to_write == 0 &&
943 wbc->sync_mode == WB_SYNC_NONE) { 941 wbc->sync_mode == WB_SYNC_NONE) {
944 /* 942 /*
945 * We stop writing back only if we are 943 * We stop writing back only if we are
@@ -970,11 +968,8 @@ continue_unlock:
970 end = writeback_index - 1; 968 end = writeback_index - 1;
971 goto retry; 969 goto retry;
972 } 970 }
973 if (!wbc->no_nrwrite_index_update) { 971 if (wbc->range_cyclic || (range_whole && wbc->nr_to_write > 0))
974 if (wbc->range_cyclic || (range_whole && nr_to_write > 0)) 972 mapping->writeback_index = done_index;
975 mapping->writeback_index = done_index;
976 wbc->nr_to_write = nr_to_write;
977 }
978 973
979 return ret; 974 return ret;
980} 975}