linux-2.6-npiggin/mm/vmscan.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletion(-) diff -puN mm/vmscan.c~vm-inactive-shrink-slab mm/vmscan.c --- linux-2.6/mm/vmscan.c~vm-inactive-shrink-slab 2004-02-22 13:39:45.000000000 +1100 +++ linux-2.6-npiggin/mm/vmscan.c 2004-02-22 13:45:01.000000000 +1100 @@ -797,6 +797,7 @@ static int shrink_zone(struct zone *zone, unsigned int gfp_mask, int nr_pages, int *nr_scanned, struct page_state *ps, int priority) { + int ret; unsigned long imbalance; unsigned long nr_refill_inact; unsigned long max_scan; @@ -836,7 +837,10 @@ shrink_zone(struct zone *zone, unsigned if (max_scan < nr_pages * 2) max_scan = nr_pages * 2; - return shrink_cache(nr_pages, zone, gfp_mask, max_scan, nr_scanned); + ret = shrink_cache(nr_pages, zone, gfp_mask, max_scan, nr_scanned); + /* Account for active list scanning too */ + *nr_scanned += nr_refill_inact; + return ret; } /* _