|
@@ -1376,13 +1376,16 @@ static void get_scan_ratio(struct zone *zone, struct scan_control *sc,
|
|
|
zone_nr_pages(zone, sc, LRU_INACTIVE_ANON);
|
|
|
file = zone_nr_pages(zone, sc, LRU_ACTIVE_FILE) +
|
|
|
zone_nr_pages(zone, sc, LRU_INACTIVE_FILE);
|
|
|
- free = zone_page_state(zone, NR_FREE_PAGES);
|
|
|
|
|
|
- /* If we have very few page cache pages, force-scan anon pages. */
|
|
|
- if (unlikely(file + free <= zone->pages_high)) {
|
|
|
- percent[0] = 100;
|
|
|
- percent[1] = 0;
|
|
|
- return;
|
|
|
+ if (scan_global_lru(sc)) {
|
|
|
+ free = zone_page_state(zone, NR_FREE_PAGES);
|
|
|
+ /* If we have very few page cache pages,
|
|
|
+ force-scan anon pages. */
|
|
|
+ if (unlikely(file + free <= zone->pages_high)) {
|
|
|
+ percent[0] = 100;
|
|
|
+ percent[1] = 0;
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/*
|