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