|
@@ -2005,12 +2005,14 @@ static void shrink_zone(int priority, struct zone *zone,
|
|
|
enum lru_list l;
|
|
|
unsigned long nr_reclaimed, nr_scanned;
|
|
|
unsigned long nr_to_reclaim = sc->nr_to_reclaim;
|
|
|
+ struct blk_plug plug;
|
|
|
|
|
|
restart:
|
|
|
nr_reclaimed = 0;
|
|
|
nr_scanned = sc->nr_scanned;
|
|
|
get_scan_count(zone, sc, nr, priority);
|
|
|
|
|
|
+ blk_start_plug(&plug);
|
|
|
while (nr[LRU_INACTIVE_ANON] || nr[LRU_ACTIVE_FILE] ||
|
|
|
nr[LRU_INACTIVE_FILE]) {
|
|
|
for_each_evictable_lru(l) {
|
|
@@ -2034,6 +2036,7 @@ restart:
|
|
|
if (nr_reclaimed >= nr_to_reclaim && priority < DEF_PRIORITY)
|
|
|
break;
|
|
|
}
|
|
|
+ blk_finish_plug(&plug);
|
|
|
sc->nr_reclaimed += nr_reclaimed;
|
|
|
|
|
|
/*
|