[PATCH] [CHECKER] get rid of txAbortCommit (3 of 3)
[email protected] Tue, 4 May 2004 15:06:39 -0500
| Newsgroups | gmane.comp.file-systems.jfs.patches |
|---|---|
| Message-ID | <[email protected]> |
# This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2004/05/04 14:26:19-05:00 [email protected] # JFS: [CHECKER] get rid of txAbortCommit # # txAbortCommit is broken and fixing it makes it equivalent to txAbort, # so get rid of it and use txAbort instead. # diff -Nru a/fs/jfs/jfs_txnmgr.c b/fs/jfs/jfs_txnmgr.c --- a/fs/jfs/jfs_txnmgr.c Tue May 4 15:04:44 2004 +++ b/fs/jfs/jfs_txnmgr.c Tue May 4 15:04:44 2004 @@ -176,7 +176,6 @@ struct tlock * tlck); static void mapLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd, struct tlock * tlck); -static void txAbortCommit(struct commit * cd); static void txAllocPMap(struct inode *ip, struct maplock * maplock, struct tblock * tblk); static void txForce(struct tblock * tblk); @@ -1315,7 +1314,7 @@ out: if (rc != 0) - txAbortCommit(&cd); + txAbort(tid, 1); TheEnd: jfs_info("txCommit: tid = %d, returning %d", tid, rc); @@ -2646,64 +2645,6 @@ return; } - - -/* - * txAbortCommit() - * - * function: abort commit. - * - * frees tlocks of transaction; line-locks and segment locks for all - * segments in comdata structure. frees malloc storage - * sets state of file-system to FM_MDIRTY in super-block. - * log age of page-frames in memory for which caller has - * are reset to 0 (to avoid logwarap). - */ -static void txAbortCommit(struct commit * cd) -{ - struct tblock *tblk; - tid_t tid; - lid_t lid, next; - struct metapage *mp; - - jfs_warn("txAbortCommit: cd:0x%p", cd); - - /* - * free tlocks of the transaction - */ - tid = cd->tid; - tblk = tid_to_tblock(tid); - for (lid = tblk->next; lid; lid = next) { - next = lid_to_tlock(lid)->next; - - mp = lid_to_tlock(lid)->mp; - if (mp) { - mp->lid = 0; - - /* - * reset lsn of page to avoid logwarap; - */ - if (mp->xflag & COMMIT_PAGE) - LogSyncRelease(mp); - } - - /* insert tlock at head of freelist */ - TXN_LOCK(); - txLockFree(lid); - TXN_UNLOCK(); - } - - tblk->next = tblk->last = 0; - - /* free the transaction block */ - txEnd(tid); - - /* - * mark filesystem dirty - */ - jfs_error(cd->sb, "txAbortCommit"); -} - /* * txLazyCommit(void)