We need to subtract the number of freed slab pages from the number of pages
to free, not add it.



 25-akpm/mm/vmscan.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

diff -puN mm/vmscan.c~slab-reclaim-accounting-fix mm/vmscan.c
--- 25/mm/vmscan.c~slab-reclaim-accounting-fix	Thu Jul 17 13:09:26 2003
+++ 25-akpm/mm/vmscan.c	Thu Jul 17 13:09:38 2003
@@ -921,7 +921,7 @@ static int balance_pgdat(pg_data_t *pgda
 			if (i < ZONE_HIGHMEM) {
 				reclaim_state->reclaimed_slab = 0;
 				shrink_slab(max_scan + nr_mapped, GFP_KERNEL);
-				to_free += reclaim_state->reclaimed_slab;
+				to_free -= reclaim_state->reclaimed_slab;
 			}
 			if (zone->all_unreclaimable)
 				continue;

_