 atomic_dec(&zone->reclaim_in_progress); 
shrink_zone(struct zone *zone, struct scan_control *sc){	unsigned long nr_active;	unsigned long nr_inactive;	/*	 * Add one to `nr_to_scan' just to make sure that the kernel will	 * slowly sift through the active list.	 */	zone->nr_scan_active += (zone->nr_active >> sc->priority) + 1;	nr_active = zone->nr_scan_active;	if (nr_active >= sc->swap_cluster_max)		zone->nr_scan_active = 0;	else		nr_active = 0;	zone->nr_scan_inactive += (zone->nr_inactive >> sc->priority) + 1;	nr_inactive = zone->nr_scan_inactive;	if (nr_inactive >= sc->swap_cluster_max)		zone->nr_scan_inactive = 0;	else		nr_inactive = 0;	sc->nr_to_reclaim = sc->swap_cluster_max;	while (nr_active || nr_inactive) {		if (nr_active) {			sc->nr_to_scan = min(nr_active,					(unsigned long)sc->swap_cluster_max);			nr_active -= sc->nr_to_scan;			refill_inactive_zone(zone, sc);		}		if (nr_inactive) {			sc->nr_to_scan = min(nr_inactive,					(unsigned long)sc->swap_cluster_max);			nr_inactive -= sc->nr_to_scan;			shrink_cache(zone, sc);			if (sc->nr_to_reclaim <= 0)				break;		}	}	throttle_vm_writeout();}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/53e9a6159fdc6419874ce4d86d3577dbedc77b62/vmscan.c/clean/mm/vmscan.c