hold_metapage(mp, 1); 
hold_metapage(mp); 
static void txUnlock(struct tblock * tblk){	struct tlock *tlck;	struct linelock *linelock;	lid_t lid, next, llid, k;	struct metapage *mp;	struct jfs_log *log;	int difft, diffp;	jfs_info("txUnlock: tblk = 0x%p", tblk);	log = JFS_SBI(tblk->sb)->log;	/*	 * mark page under tlock homeok (its log has been written):	 */	for (lid = tblk->next; lid; lid = next) {		tlck = lid_to_tlock(lid);		next = tlck->next;		jfs_info("unlocking lid = %d, tlck = 0x%p", lid, tlck);		/* unbind page from tlock */		if ((mp = tlck->mp) != NULL &&		    (tlck->type & tlckBTROOT) == 0) {			assert(mp->xflag & COMMIT_PAGE);			/* hold buffer			 *			 * It's possible that someone else has the metapage.			 * The only things were changing are nohomeok, which			 * is handled atomically, and clsn which is protected			 * by the LOGSYNC_LOCK.			 */			hold_metapage(mp, 1);			assert(atomic_read(&mp->nohomeok) > 0);			atomic_dec(&mp->nohomeok);			/* inherit younger/larger clsn */			LOGSYNC_LOCK(log);			if (mp->clsn) {				logdiff(difft, tblk->clsn, log);				logdiff(diffp, mp->clsn, log);				if (difft > diffp)					mp->clsn = tblk->clsn;			} else				mp->clsn = tblk->clsn;			LOGSYNC_UNLOCK(log);			assert(!(tlck->flag & tlckFREEPAGE));			if (tlck->flag & tlckWRITEPAGE) {				write_metapage(mp);			} else {				/* release page which has been forced */				release_metapage(mp);			}		}		/* insert tlock, and linelock(s) of the tlock if any,		 * at head of freelist		 */		TXN_LOCK();		llid = ((struct linelock *) & tlck->lock)->next;		while (llid) {			linelock = (struct linelock *) lid_to_tlock(llid);			k = linelock->next;			txLockFree(llid);			llid = k;		}		txLockFree(lid);		TXN_UNLOCK();	}	tblk->next = tblk->last = 0;	/*	 * remove tblock from logsynclist	 * (allocation map pages inherited lsn of tblk and	 * has been inserted in logsync list at txUpdateMap())	 */	if (tblk->lsn) {		LOGSYNC_LOCK(log);		log->count--;		list_del(&tblk->synclist);		LOGSYNC_UNLOCK(log);	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/7fab479bebb96b1b4888bdae9b42e1fa9c5d3f38/jfs_txnmgr.c/clean/fs/jfs/jfs_txnmgr.c