if (current->flags & PF_FREEZE) { 
if (freezing(current)) { 
int jfs_sync(void *arg){	struct inode *ip;	struct jfs_inode_info *jfs_ip;	int rc;	tid_t tid;	daemonize("jfsSync");	complete(&jfsIOwait);	do {		/*		 * write each inode on the anonymous inode list		 */		TXN_LOCK();		while (jfs_tlocks_low && !list_empty(&TxAnchor.anon_list)) {			jfs_ip = list_entry(TxAnchor.anon_list.next,					    struct jfs_inode_info,					    anon_inode_list);			ip = &jfs_ip->vfs_inode;			if (! igrab(ip)) {				/*				 * Inode is being freed				 */				list_del_init(&jfs_ip->anon_inode_list);			} else if (! down_trylock(&jfs_ip->commit_sem)) {				/*				 * inode will be removed from anonymous list				 * when it is committed				 */				TXN_UNLOCK();				tid = txBegin(ip->i_sb, COMMIT_INODE);				rc = txCommit(tid, 1, &ip, 0);				txEnd(tid);				up(&jfs_ip->commit_sem);				iput(ip);				/*				 * Just to be safe.  I don't know how				 * long we can run without blocking				 */				cond_resched();				TXN_LOCK();			} else {				/* We can't get the commit semaphore.  It may				 * be held by a thread waiting for tlock's				 * so let's not block here.  Save it to				 * put back on the anon_list.				 */				/* Take off anon_list */				list_del(&jfs_ip->anon_inode_list);				/* Put on anon_list2 */				list_add(&jfs_ip->anon_inode_list,					 &TxAnchor.anon_list2);				TXN_UNLOCK();				iput(ip);				TXN_LOCK();			}		}		/* Add anon_list2 back to anon_list */		list_splice_init(&TxAnchor.anon_list2, &TxAnchor.anon_list);		if (current->flags & PF_FREEZE) {			TXN_UNLOCK();			refrigerator(PF_FREEZE);		} else {			DECLARE_WAITQUEUE(wq, current);			add_wait_queue(&jfs_sync_thread_wait, &wq);			set_current_state(TASK_INTERRUPTIBLE);			TXN_UNLOCK();			schedule();			current->state = TASK_RUNNING;			remove_wait_queue(&jfs_sync_thread_wait, &wq);		}	} while (!jfs_stop_threads);	jfs_info("jfs_sync being killed");	complete_and_exit(&jfsIOwait, 0);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3e1d1d28d99dabe63c64f7f40f1ca1d646de1f73/jfs_txnmgr.c/clean/fs/jfs/jfs_txnmgr.c