diff options
-rw-r--r-- | mm/vmscan.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c index b68a9342d5a3..b1520b077858 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c | |||
@@ -2005,12 +2005,14 @@ static void shrink_zone(int priority, struct zone *zone, | |||
2005 | enum lru_list l; | 2005 | enum lru_list l; |
2006 | unsigned long nr_reclaimed, nr_scanned; | 2006 | unsigned long nr_reclaimed, nr_scanned; |
2007 | unsigned long nr_to_reclaim = sc->nr_to_reclaim; | 2007 | unsigned long nr_to_reclaim = sc->nr_to_reclaim; |
2008 | struct blk_plug plug; | ||
2008 | 2009 | ||
2009 | restart: | 2010 | restart: |
2010 | nr_reclaimed = 0; | 2011 | nr_reclaimed = 0; |
2011 | nr_scanned = sc->nr_scanned; | 2012 | nr_scanned = sc->nr_scanned; |
2012 | get_scan_count(zone, sc, nr, priority); | 2013 | get_scan_count(zone, sc, nr, priority); |
2013 | 2014 | ||
2015 | blk_start_plug(&plug); | ||
2014 | while (nr[LRU_INACTIVE_ANON] || nr[LRU_ACTIVE_FILE] || | 2016 | while (nr[LRU_INACTIVE_ANON] || nr[LRU_ACTIVE_FILE] || |
2015 | nr[LRU_INACTIVE_FILE]) { | 2017 | nr[LRU_INACTIVE_FILE]) { |
2016 | for_each_evictable_lru(l) { | 2018 | for_each_evictable_lru(l) { |
@@ -2034,6 +2036,7 @@ restart: | |||
2034 | if (nr_reclaimed >= nr_to_reclaim && priority < DEF_PRIORITY) | 2036 | if (nr_reclaimed >= nr_to_reclaim && priority < DEF_PRIORITY) |
2035 | break; | 2037 | break; |
2036 | } | 2038 | } |
2039 | blk_finish_plug(&plug); | ||
2037 | sc->nr_reclaimed += nr_reclaimed; | 2040 | sc->nr_reclaimed += nr_reclaimed; |
2038 | 2041 | ||
2039 | /* | 2042 | /* |