static void dtLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,	   struct tlock * tlck){	struct metapage *mp;	struct pxd_lock *pxdlock;	pxd_t *pxd;	mp = tlck->mp;	/* initialize as REDOPAGE/NOREDOPAGE record format */	lrd->log.redopage.type = cpu_to_le16(LOG_DTREE);	lrd->log.redopage.l2linesize = cpu_to_le16(L2DTSLOTSIZE);	pxd = &lrd->log.redopage.pxd;	if (tlck->type & tlckBTROOT)		lrd->log.redopage.type |= cpu_to_le16(LOG_BTROOT);	/*	 *      page extension via relocation: entry insertion;	 *      page extension in-place: entry insertion;	 *      new right page from page split, reinitialized in-line	 *      root from root page split: entry insertion;	 */	if (tlck->type & (tlckNEW | tlckEXTEND)) {		/* log after-image of the new page for logredo():		 * mark log (LOG_NEW) for logredo() to initialize		 * freelist and update bmap for alloc of the new page;		 */		lrd->type = cpu_to_le16(LOG_REDOPAGE);		if (tlck->type & tlckEXTEND)			lrd->log.redopage.type |= cpu_to_le16(LOG_EXTEND);		else			lrd->log.redopage.type |= cpu_to_le16(LOG_NEW);//              *pxd = mp->cm_pxd;		PXDaddress(pxd, mp->index);		PXDlength(pxd,			  mp->logical_size >> tblk->sb->s_blocksize_bits);		lrd->backchain = cpu_to_le32(lmLog(log, tblk, lrd, tlck));		/* format a maplock for txUpdateMap() to update bPMAP for		 * alloc of the new page;		 */		if (tlck->type & tlckBTROOT)			return;		tlck->flag |= tlckUPDATEMAP;		pxdlock = (struct pxd_lock *) & tlck->lock;		pxdlock->flag = mlckALLOCPXD;		pxdlock->pxd = *pxd;		pxdlock->index = 1;		/* mark page as homeward bound */		tlck->flag |= tlckWRITEPAGE;		return;	}	/*	 *      entry insertion/deletion,	 *      sibling page link update (old right page before split);	 */	if (tlck->type & (tlckENTRY | tlckRELINK)) {		/* log after-image for logredo(): */		lrd->type = cpu_to_le16(LOG_REDOPAGE);		PXDaddress(pxd, mp->index);		PXDlength(pxd,			  mp->logical_size >> tblk->sb->s_blocksize_bits);		lrd->backchain = cpu_to_le32(lmLog(log, tblk, lrd, tlck));		/* mark page as homeward bound */		tlck->flag |= tlckWRITEPAGE;		return;	}	/*	 *      page deletion: page has been invalidated	 *      page relocation: source extent	 *	 *      a maplock for free of the page has been formatted	 *      at txLock() time);	 */	if (tlck->type & (tlckFREE | tlckRELOCATE)) {		/* log LOG_NOREDOPAGE of the deleted page for logredo()		 * to start NoRedoPage filter and to update bmap for free		 * of the deletd page		 */		lrd->type = cpu_to_le16(LOG_NOREDOPAGE);		pxdlock = (struct pxd_lock *) & tlck->lock;		*pxd = pxdlock->pxd;		lrd->backchain = cpu_to_le32(lmLog(log, tblk, lrd, NULL));		/* a maplock for txUpdateMap() for free of the page		 * has been formatted at txLock() time;		 */		tlck->flag |= tlckUPDATEMAP;	}	return;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/1868f4aa5a4a72bbe0b7db6c1d4ee666824c3895/jfs_txnmgr.c/clean/fs/jfs/jfs_txnmgr.c