aboutsummaryrefslogtreecommitdiffstats
path: root/fs/jfs/jfs_txnmgr.c
diff options
context:
space:
mode:
authorDave Kleikamp <shaggy@austin.ibm.com>2005-08-19 10:37:59 -0500
committerDave Kleikamp <shaggy@austin.ibm.com>2005-08-19 10:37:59 -0500
commit01fa90cb2f0b664bc86d9aff807f4ea7f09e2e7f (patch)
tree5c290dcd84389e8a5bacc052bf61ea89ac02a4fb /fs/jfs/jfs_txnmgr.c
parent686762c8049457a6255ad5caf9275c100fbaceb6 (diff)
parent2ad56496627630ebc99f06af5f81ca23e17e014e (diff)
downloadkernel_samsung_smdk4412-01fa90cb2f0b664bc86d9aff807f4ea7f09e2e7f.tar.gz
kernel_samsung_smdk4412-01fa90cb2f0b664bc86d9aff807f4ea7f09e2e7f.tar.bz2
kernel_samsung_smdk4412-01fa90cb2f0b664bc86d9aff807f4ea7f09e2e7f.zip
Merge with /home/shaggy/git/linus-clean/
Diffstat (limited to 'fs/jfs/jfs_txnmgr.c')
-rw-r--r--fs/jfs/jfs_txnmgr.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/fs/jfs/jfs_txnmgr.c b/fs/jfs/jfs_txnmgr.c
index 121c981ff45..c7a92f9deb2 100644
--- a/fs/jfs/jfs_txnmgr.c
+++ b/fs/jfs/jfs_txnmgr.c
@@ -552,6 +552,11 @@ void txEnd(tid_t tid)
* synchronize with logsync barrier
*/
if (test_bit(log_SYNCBARRIER, &log->flag)) {
+ TXN_UNLOCK();
+
+ /* write dirty metadata & forward log syncpt */
+ jfs_syncpt(log, 1);
+
jfs_info("log barrier off: 0x%x", log->lsn);
/* enable new transactions start */
@@ -560,11 +565,6 @@ void txEnd(tid_t tid)
/* wakeup all waitors for logsync barrier */
TXN_WAKEUP(&log->syncwait);
- TXN_UNLOCK();
-
- /* forward log syncpt */
- jfs_syncpt(log);
-
goto wakeup;
}
}
@@ -657,7 +657,9 @@ struct tlock *txLock(tid_t tid, struct inode *ip, struct metapage * mp,
/* only anonymous txn.
* Remove from anon_list
*/
+ TXN_LOCK();
list_del_init(&jfs_ip->anon_inode_list);
+ TXN_UNLOCK();
}
jfs_ip->atlhead = tlck->next;
} else {