list_del(&block.b_list);  if (!signalled()) { *statp = block.b_status; return 0; 
if (block->b_status != NLM_LCK_BLOCKED) { req->a_res.status = block->b_status; block->b_status = NLM_LCK_BLOCKED; 
nlmclnt_block(struct nlm_host *host, struct file_lock *fl, u32 *statp){	struct nlm_wait	block, **head;	int		err;	u32		pstate;	block.b_host   = host;	block.b_lock   = fl;	init_waitqueue_head(&block.b_wait);	block.b_status = NLM_LCK_BLOCKED;	list_add(&block.b_list, &nlm_blocked);	/* Remember pseudo nsm state */	pstate = host->h_state;	/* Go to sleep waiting for GRANT callback. Some servers seem	 * to lose callbacks, however, so we're going to poll from	 * time to time just to make sure.	 *	 * For now, the retry frequency is pretty high; normally 	 * a 1 minute timeout would do. See the comment before	 * nlmclnt_lock for an explanation.	 */	sleep_on_timeout(&block.b_wait, 30*HZ);	list_del(&block.b_list);	if (!signalled()) {		*statp = block.b_status;		return 0;	}	/* Okay, we were interrupted. Cancel the pending request	 * unless the server has rebooted.	 */	if (pstate == host->h_state && (err = nlmclnt_cancel(host, fl)) < 0)		printk(KERN_NOTICE			"lockd: CANCEL call failed (errno %d)\n", -err);	return -ERESTARTSYS;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/ecdbf769b2cb8903e07cd482334c714d89fd1146/clntlock.c/clean/fs/lockd/clntlock.c