Lines Matching refs:tblk
92 #define LOGGC_WAKEUP(tblk) wake_up_all(&(tblk)->gcwait) argument
163 static int lmWriteRecord(struct jfs_log * log, struct tblock * tblk,
225 int lmLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd, in lmLog() argument
234 log, tblk, lrd, tlck); in lmLog()
239 if (tblk == NULL) in lmLog()
284 if (tblk->lsn == 0) { in lmLog()
286 tblk->lsn = mp->lsn; in lmLog()
290 list_add(&tblk->synclist, &mp->synclist); in lmLog()
298 logdiff(difft, tblk->lsn, log); in lmLog()
301 tblk->lsn = mp->lsn; in lmLog()
304 list_move(&tblk->synclist, &mp->synclist); in lmLog()
314 lsn = lmWriteRecord(log, tblk, lrd, tlck); in lmLog()
344 lmWriteRecord(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd, in lmWriteRecord() argument
492 tblk->clsn = lsn; in lmWriteRecord()
493 jfs_info("wr: tclsn:0x%x, beor:0x%x", tblk->clsn, in lmWriteRecord()
509 tblk->flag = tblkGC_QUEUE; in lmWriteRecord()
510 tblk->bp = log->bp; in lmWriteRecord()
511 tblk->pn = log->page; in lmWriteRecord()
512 tblk->eor = log->eor; in lmWriteRecord()
515 list_add_tail(&tblk->cqueue, &log->cqueue); in lmWriteRecord()
559 struct tblock *tblk; in lmNextPage() local
574 tblk = NULL; in lmNextPage()
576 tblk = list_entry(log->cqueue.prev, struct tblock, cqueue); in lmNextPage()
588 if (tblk && tblk->pn == pn) { in lmNextPage()
590 tblk->flag |= tblkGC_EOP; in lmNextPage()
658 int lmGroupCommit(struct jfs_log * log, struct tblock * tblk) in lmGroupCommit() argument
665 if (tblk->flag & tblkGC_COMMITTED) { in lmGroupCommit()
666 if (tblk->flag & tblkGC_ERROR) in lmGroupCommit()
672 jfs_info("lmGroup Commit: tblk = 0x%p, gcrtc = %d", tblk, log->gcrtc); in lmGroupCommit()
674 if (tblk->xflag & COMMIT_LAZY) in lmGroupCommit()
675 tblk->flag |= tblkGC_LAZY; in lmGroupCommit()
678 (!(tblk->xflag & COMMIT_LAZY) || test_bit(log_FLUSH, &log->flag) in lmGroupCommit()
690 if (tblk->xflag & COMMIT_LAZY) { in lmGroupCommit()
700 if (tblk->flag & tblkGC_COMMITTED) { in lmGroupCommit()
701 if (tblk->flag & tblkGC_ERROR) in lmGroupCommit()
711 tblk->flag |= tblkGC_READY; in lmGroupCommit()
713 __SLEEP_COND(tblk->gcwait, (tblk->flag & tblkGC_COMMITTED), in lmGroupCommit()
717 if (tblk->flag & tblkGC_ERROR) in lmGroupCommit()
742 struct tblock *tblk; in lmGCwrite() local
754 list_for_each_entry(tblk, &log->cqueue, cqueue) { in lmGCwrite()
755 if (tblk->pn != gcpn) in lmGCwrite()
758 xtblk = tblk; in lmGCwrite()
761 tblk->flag |= tblkGC_COMMIT; in lmGCwrite()
763 tblk = xtblk; /* last tblk of the page */ in lmGCwrite()
768 bp = (struct lbuf *) tblk->bp; in lmGCwrite()
771 if (tblk->flag & tblkGC_EOP) { in lmGCwrite()
773 tblk->flag &= ~tblkGC_EOP; in lmGCwrite()
774 tblk->flag |= tblkGC_FREE; in lmGCwrite()
783 bp->l_ceor = tblk->eor; /* ? bp->l_ceor = bp->l_eor; */ in lmGCwrite()
807 struct tblock *tblk, *temp; in lmPostGC() local
817 list_for_each_entry_safe(tblk, temp, &log->cqueue, cqueue) { in lmPostGC()
818 if (!(tblk->flag & tblkGC_COMMIT)) in lmPostGC()
826 tblk->flag |= tblkGC_ERROR; in lmPostGC()
829 list_del(&tblk->cqueue); in lmPostGC()
830 tblk->flag &= ~tblkGC_QUEUE; in lmPostGC()
832 if (tblk == log->flush_tblk) { in lmPostGC()
838 jfs_info("lmPostGC: tblk = 0x%p, flag = 0x%x", tblk, in lmPostGC()
839 tblk->flag); in lmPostGC()
841 if (!(tblk->xflag & COMMIT_FORCE)) in lmPostGC()
845 txLazyUnlock(tblk); in lmPostGC()
848 tblk->flag |= tblkGC_COMMITTED; in lmPostGC()
850 if (tblk->flag & tblkGC_READY) in lmPostGC()
853 LOGGC_WAKEUP(tblk); in lmPostGC()
859 if (tblk->flag & tblkGC_FREE) in lmPostGC()
864 else if (tblk->flag & tblkGC_EOP) { in lmPostGC()
884 ((log->gcrtc > 0) || (tblk->bp->l_wqnext != NULL) || in lmPostGC()