static inline int scan_swap_map(struct swap_info_struct *si) 
static inline unsigned long scan_swap_map(struct swap_info_struct *si) 
static inline int scan_swap_map(struct swap_info_struct *si){	unsigned long offset;	/* 	 * We try to cluster swap pages by allocating them	 * sequentially in swap.  Once we've allocated	 * SWAPFILE_CLUSTER pages this way, however, we resort to	 * first-free allocation, starting a new cluster.  This	 * prevents us from scattering swap pages all over the entire	 * swap partition, so that we reduce overall disk seek times	 * between swap pages.  -- sct */	if (si->cluster_nr) {		while (si->cluster_next <= si->highest_bit) {			offset = si->cluster_next++;			if (si->swap_map[offset])				continue;			si->cluster_nr--;			goto got_page;		}	}	si->cluster_nr = SWAPFILE_CLUSTER;	/* try to find an empty (even not aligned) cluster. */	offset = si->lowest_bit; check_next_cluster:	if (offset+SWAPFILE_CLUSTER-1 <= si->highest_bit)	{		unsigned long nr;		for (nr = offset; nr < offset+SWAPFILE_CLUSTER; nr++)			if (si->swap_map[nr])			{				offset = nr+1;				goto check_next_cluster;			}		/* We found a completly empty cluster, so start		 * using it.		 */		goto got_page;	}	/* No luck, so now go finegrined as usual. -Andrea */	for (offset = si->lowest_bit; offset <= si->highest_bit ; offset++) {		if (si->swap_map[offset])			continue;		si->lowest_bit = offset+1;	got_page:		if (offset == si->lowest_bit)			si->lowest_bit++;		if (offset == si->highest_bit)			si->highest_bit--;		if (si->lowest_bit > si->highest_bit) {			si->lowest_bit = si->max;			si->highest_bit = 0;		}		si->swap_map[offset] = 1;		si->inuse_pages++;		nr_swap_pages--;		si->cluster_next = offset+1;		return offset;	}	si->lowest_bit = si->max;	si->highest_bit = 0;	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/6eb396dc4a9781c5e7951143ab56ce5710687ab3/swapfile.c/clean/mm/swapfile.c