diff options
| author | Dave Kleikamp <jfs.adm@hostme.bitkeeper.com> | 2002-10-03 15:29:59 -0700 |
|---|---|---|
| committer | Dave Kleikamp <jfs.adm@hostme.bitkeeper.com> | 2002-10-03 15:29:59 -0700 |
| commit | 854f96ea62977d57b644a35acbb2f66e5f44bda5 (patch) | |
| tree | ca864f0d0901f5b485ec66090e81b031478311e5 | |
| parent | 706e54557b43681eae8eb0443eab33262f603127 (diff) | |
| parent | b0df1a7ad33a27959bbc0a341c2c00b19c32fc2b (diff) | |
Merge bk://linus.bkbits.net/linux-2.5
into hostme.bitkeeper.com:/ua/repos/j/jfs/linux-2.5
| -rw-r--r-- | fs/jfs/jfs_txnmgr.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/jfs/jfs_txnmgr.c b/fs/jfs/jfs_txnmgr.c index 7e2ddf0da906..ede71390b984 100644 --- a/fs/jfs/jfs_txnmgr.c +++ b/fs/jfs/jfs_txnmgr.c @@ -2746,13 +2746,16 @@ void txLazyCommit(struct tblock * tblk) if (tblk->flag & tblkGC_READY) wake_up(&tblk->gcwait); // LOGGC_WAKEUP - spin_unlock_irq(&log->gclock); // LOGGC_UNLOCK - + /* + * Can't release log->gclock until we've tested tblk->flag + */ if (tblk->flag & tblkGC_LAZY) { + spin_unlock_irq(&log->gclock); // LOGGC_UNLOCK txUnlock(tblk); tblk->flag &= ~tblkGC_LAZY; txEnd(tblk - TxBlock); /* Convert back to tid */ - } + } else + spin_unlock_irq(&log->gclock); // LOGGC_UNLOCK jFYI(1, ("txLazyCommit: done: tblk = 0x%p\n", tblk)); } |
