for (block = nlm_blocked; block; block = block->b_next) { 
list_for_each_entry(block, &nlm_blocked, b_list) { 
reclaimer(void *ptr){	struct nlm_host	  *host = (struct nlm_host *) ptr;	struct nlm_wait	  *block;	struct list_head *tmp;	struct file_lock *fl;	struct inode *inode;	daemonize("%s-reclaim", host->h_name);	allow_signal(SIGKILL);	/* This one ensures that our parent doesn't terminate while the	 * reclaim is in progress */	lock_kernel();	lockd_up();	/* First, reclaim all locks that have been marked. */restart:	list_for_each(tmp, &file_lock_list) {		fl = list_entry(tmp, struct file_lock, fl_link);		inode = fl->fl_file->f_dentry->d_inode;		if (inode->i_sb->s_magic != NFS_SUPER_MAGIC)			continue;		if (fl->fl_u.nfs_fl.owner->host != host)			continue;		if (!(fl->fl_u.nfs_fl.flags & NFS_LCK_RECLAIM))			continue;		fl->fl_u.nfs_fl.flags &= ~NFS_LCK_RECLAIM;		nlmclnt_reclaim(host, fl);		if (signalled())			break;		goto restart;	}	host->h_reclaiming = 0;	/* Now, wake up all processes that sleep on a blocked lock */	for (block = nlm_blocked; block; block = block->b_next) {		if (block->b_host == host) {			block->b_status = NLM_LCK_DENIED_GRACE_PERIOD;			wake_up(&block->b_wait);		}	}	/* Release host handle after use */	nlm_release_host(host);	lockd_down();	unlock_kernel();	module_put_and_exit(0);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/4f15e2b1f4f3a56e46201714b39436c32218d547/clntlock.c/buggy/fs/lockd/clntlock.c