current->state = TASK_INTERRUPTIBLE; expire = schedule_timeout(expire - now); 
expire = schedule_timeout_interruptible(expire - now); 
static long __sched nanosleep_restart(struct restart_block *restart){	unsigned long expire = restart->arg0, now = jiffies;	struct timespec __user *rmtp = (struct timespec __user *) restart->arg1;	long ret;	/* Did it expire while we handled signals? */	if (!time_after(expire, now))		return 0;	current->state = TASK_INTERRUPTIBLE;	expire = schedule_timeout(expire - now);	ret = 0;	if (expire) {		struct timespec t;		jiffies_to_timespec(expire, &t);		ret = -ERESTART_RESTARTBLOCK;		if (rmtp && copy_to_user(rmtp, &t, sizeof(t)))			ret = -EFAULT;		/* The 'restart' block is already filled in */	}	return ret;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/75bcc8c5e1de78616b04ef9f317a293a7c1c163c/timer.c/clean/kernel/timer.c