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.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 24de8b65fdbd..b40f6d5f8fe9 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -7,7 +7,7 @@
7 * Contains functions related to writing back dirty pages at the 7 * Contains functions related to writing back dirty pages at the
8 * address_space level. 8 * address_space level.
9 * 9 *
10 * 10Apr2002 akpm@zip.com.au 10 * 10Apr2002 Andrew Morton
11 * Initial version 11 * Initial version
12 */ 12 */
13 13
@@ -876,6 +876,7 @@ int write_cache_pages(struct address_space *mapping,
876 pgoff_t end; /* Inclusive */ 876 pgoff_t end; /* Inclusive */
877 int scanned = 0; 877 int scanned = 0;
878 int range_whole = 0; 878 int range_whole = 0;
879 long nr_to_write = wbc->nr_to_write;
879 880
880 if (wbc->nonblocking && bdi_write_congested(bdi)) { 881 if (wbc->nonblocking && bdi_write_congested(bdi)) {
881 wbc->encountered_congestion = 1; 882 wbc->encountered_congestion = 1;
@@ -939,7 +940,7 @@ retry:
939 unlock_page(page); 940 unlock_page(page);
940 ret = 0; 941 ret = 0;
941 } 942 }
942 if (ret || (--(wbc->nr_to_write) <= 0)) 943 if (ret || (--nr_to_write <= 0))
943 done = 1; 944 done = 1;
944 if (wbc->nonblocking && bdi_write_congested(bdi)) { 945 if (wbc->nonblocking && bdi_write_congested(bdi)) {
945 wbc->encountered_congestion = 1; 946 wbc->encountered_congestion = 1;
@@ -958,11 +959,12 @@ retry:
958 index = 0; 959 index = 0;
959 goto retry; 960 goto retry;
960 } 961 }
961 if (wbc->range_cyclic || (range_whole && wbc->nr_to_write > 0)) 962 if (!wbc->no_nrwrite_index_update) {
962 mapping->writeback_index = index; 963 if (wbc->range_cyclic || (range_whole && nr_to_write > 0))
964 mapping->writeback_index = index;
965 wbc->nr_to_write = nr_to_write;
966 }
963 967
964 if (wbc->range_cont)
965 wbc->range_start = index << PAGE_CACHE_SHIFT;
966 return ret; 968 return ret;
967} 969}
968EXPORT_SYMBOL(write_cache_pages); 970EXPORT_SYMBOL(write_cache_pages);