current->state = TASK_INTERRUPTIBLE; expire = schedule_timeout(expire); 
expire = schedule_timeout_interruptible(expire); 
asmlinkage long sys_nanosleep(struct timespec __user *rqtp, struct timespec __user *rmtp){	struct timespec t;	unsigned long expire;	long ret;	if (copy_from_user(&t, rqtp, sizeof(t)))		return -EFAULT;	if ((t.tv_nsec >= 1000000000L) || (t.tv_nsec < 0) || (t.tv_sec < 0))		return -EINVAL;	expire = timespec_to_jiffies(&t) + (t.tv_sec || t.tv_nsec);	current->state = TASK_INTERRUPTIBLE;	expire = schedule_timeout(expire);	ret = 0;	if (expire) {		struct restart_block *restart;		jiffies_to_timespec(expire, &t);		if (rmtp && copy_to_user(rmtp, &t, sizeof(t)))			return -EFAULT;		restart = &current_thread_info()->restart_block;		restart->fn = nanosleep_restart;		restart->arg0 = jiffies + expire;		restart->arg1 = (unsigned long) rmtp;		ret = -ERESTART_RESTARTBLOCK;	}	return ret;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/75bcc8c5e1de78616b04ef9f317a293a7c1c163c/timer.c/clean/kernel/timer.c