/* Can't get swapout protection if we exceed our RSS limit. */   
if (!swap_token_default_timeout) { swap_token_check = jiffies + SWAP_TOKEN_CHECK_INTERVAL; return; } 
void grab_swap_token(void){	struct mm_struct *mm;	int reason;	/* We have the token. Let others know we still need it. */	if (has_swap_token(current->mm)) {		current->mm->recent_pagein = 1;		return;	}	if (time_after(jiffies, swap_token_check)) {		/* Can't get swapout protection if we exceed our RSS limit. */		// if (current->mm->rss > current->mm->rlimit_rss)		//	return;		/* ... or if we recently held the token. */		if (time_before(jiffies, current->mm->swap_token_time))			return;		if (!spin_trylock(&swap_token_lock))			return;		swap_token_check = jiffies + SWAP_TOKEN_CHECK_INTERVAL;		mm = swap_token_mm;		if ((reason = should_release_swap_token(mm))) {			unsigned long eligible = jiffies;			if (reason == SWAP_TOKEN_TIMED_OUT) {				eligible += swap_token_default_timeout;			}			mm->swap_token_time = eligible;			swap_token_timeout = jiffies + swap_token_default_timeout;			swap_token_mm = current->mm;		}		spin_unlock(&swap_token_lock);	}	return;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/f7b7fd8f3ebbb2810d6893295aa984acd0fd30db/thrash.c/clean/mm/thrash.c