From 54ea7f99a03ae611a9d590f49c96b6a624cfeed9 Mon Sep 17 00:00:00 2001 From: Dave Chinner Date: Tue, 24 Aug 2010 11:44:34 +1000 Subject: [PATCH] --- yaml --- r: 209979 b: refs/heads/master c: 546a1924224078c6f582e68f890b05b387b42653 h: refs/heads/master i: 209977: 4d3b82b6e3453c0db3f48af270f1272bba315ae1 209975: c18f793848cc6f0a219817b156e7dc427c50817f v: v3 --- [refs] | 2 +- trunk/mm/page-writeback.c | 26 ++++++++++---------------- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/[refs] b/[refs] index 29cef42b86de..e73f8feb62d0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4536f2ad8b330453d7ebec0746c4374eadd649b1 +refs/heads/master: 546a1924224078c6f582e68f890b05b387b42653 diff --git a/trunk/mm/page-writeback.c b/trunk/mm/page-writeback.c index c09ef5219cbe..a803f5e33471 100644 --- a/trunk/mm/page-writeback.c +++ b/trunk/mm/page-writeback.c @@ -985,22 +985,16 @@ int write_cache_pages(struct address_space *mapping, } } - if (wbc->nr_to_write > 0) { - if (--wbc->nr_to_write == 0 && - wbc->sync_mode == WB_SYNC_NONE) { - /* - * We stop writing back only if we are - * not doing integrity sync. In case of - * integrity sync we have to keep going - * because someone may be concurrently - * dirtying pages, and we might have - * synced a lot of newly appeared dirty - * pages, but have not synced all of the - * old dirty pages. - */ - done = 1; - break; - } + /* + * We stop writing back only if we are not doing + * integrity sync. In case of integrity sync we have to + * keep going until we have written all the pages + * we tagged for writeback prior to entering this loop. + */ + if (--wbc->nr_to_write <= 0 && + wbc->sync_mode == WB_SYNC_NONE) { + done = 1; + break; } } pagevec_release(&pvec);