assert(atomic_read(&mp->nohomeok)); 
assert(mp->nohomeok); 
void txForce(struct tblock * tblk){	struct tlock *tlck;	lid_t lid, next;	struct metapage *mp;	/*	 * reverse the order of transaction tlocks in	 * careful update order of address index pages	 * (right to left, bottom up)	 */	tlck = lid_to_tlock(tblk->next);	lid = tlck->next;	tlck->next = 0;	while (lid) {		tlck = lid_to_tlock(lid);		next = tlck->next;		tlck->next = tblk->next;		tblk->next = lid;		lid = next;	}	/*	 * synchronously write the page, and	 * hold the page for txUpdateMap();	 */	for (lid = tblk->next; lid; lid = next) {		tlck = lid_to_tlock(lid);		next = tlck->next;		if ((mp = tlck->mp) != NULL &&		    (tlck->type & tlckBTROOT) == 0) {			assert(mp->xflag & COMMIT_PAGE);			if (tlck->flag & tlckWRITEPAGE) {				tlck->flag &= ~tlckWRITEPAGE;				/* do not release page to freelist */				/*				 * The "right" thing to do here is to				 * synchronously write the metadata.				 * With the current implementation this				 * is hard since write_metapage requires				 * us to kunmap & remap the page.  If we				 * have tlocks pointing into the metadata				 * pages, we don't want to do this.  I think				 * we can get by with synchronously writing				 * the pages when they are released.				 */				assert(atomic_read(&mp->nohomeok));				set_bit(META_dirty, &mp->flag);				set_bit(META_sync, &mp->flag);			}		}	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/7fab479bebb96b1b4888bdae9b42e1fa9c5d3f38/jfs_txnmgr.c/clean/fs/jfs/jfs_txnmgr.c