aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2
diff options
context:
space:
mode:
authorMark Fasheh <mark.fasheh@oracle.com>2006-01-18 13:31:47 -0500
committerMark Fasheh <mark.fasheh@oracle.com>2006-02-03 17:05:14 -0500
commit6eff5790d57a5c9c01489c95946881808a4b2a2c (patch)
tree2b96da58c99b27945e8c9bffb0ae48a97c4231be /fs/ocfs2
parent1a1974fd4533afdb73873cdacb942d9a79ff7c9b (diff)
[PATCH] ocfs2: don't wait on recovery when locking journal
The mount path had incorrectly asked the locking code to wait for recovery completion, which deadlocks things because recovery waits for mount to complete first. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Diffstat (limited to 'fs/ocfs2')
-rw-r--r--fs/ocfs2/journal.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c
index b71b3385fdb..fa0bcac5cea 100644
--- a/fs/ocfs2/journal.c
+++ b/fs/ocfs2/journal.c
@@ -560,7 +560,11 @@ int ocfs2_journal_init(struct ocfs2_journal *journal, int *dirty)
560 SET_INODE_JOURNAL(inode); 560 SET_INODE_JOURNAL(inode);
561 OCFS2_I(inode)->ip_open_count++; 561 OCFS2_I(inode)->ip_open_count++;
562 562
563 status = ocfs2_meta_lock(inode, NULL, &bh, 1); 563 /* Skip recovery waits here - journal inode metadata never
564 * changes in a live cluster so it can be considered an
565 * exception to the rule. */
566 status = ocfs2_meta_lock_full(inode, NULL, &bh, 1,
567 OCFS2_META_LOCK_RECOVERY);
564 if (status < 0) { 568 if (status < 0) {
565 if (status != -ERESTARTSYS) 569 if (status != -ERESTARTSYS)
566 mlog(ML_ERROR, "Could not get lock on journal!\n"); 570 mlog(ML_ERROR, "Could not get lock on journal!\n");