--- 2.4.5aa3/mm/vmscan.c.~1~ Sat May 26 04:03:50 2001 +++ 2.4.5aa3/mm/vmscan.c Tue Jun 5 03:37:43 2001 @@ -737,13 +737,12 @@ int free_shortage(void) { pg_data_t *pgdat = pgdat_list; - int sum = 0; int freeable = nr_free_pages() + nr_inactive_clean_pages(); int freetarget = freepages.high; /* Are we low on free pages globally? */ if (freeable < freetarget) - return freetarget - freeable; + return 1; /* If not, are we very low on any particular zone? */ do { @@ -752,15 +751,13 @@ zone_t *zone = pgdat->node_zones+ i; if (zone->size && (zone->inactive_clean_pages + zone->free_pages < zone->pages_min)) { - sum += zone->pages_min; - sum -= zone->free_pages; - sum -= zone->inactive_clean_pages; + return 1; } } pgdat = pgdat->node_next; } while (pgdat); - return sum; + return 0; } /*