aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2
diff options
context:
space:
mode:
authorMark Fasheh <mark.fasheh@oracle.com>2007-12-03 17:06:23 -0500
committerMark Fasheh <mark.fasheh@oracle.com>2007-12-17 13:49:43 -0500
commita86370fbb65a0a2cb21d28bf25a748f6cc04385b (patch)
tree787ec4c82c05a010c7ef38cb22b2a2ca73b2a6f3 /fs/ocfs2
parentea9e7b5569a538123dc4d60ba36b9170ca8e8830 (diff)
ocfs2: fix exit-while-locked bug in ocfs2_queue_orphans()
We're holding the cluster lock when a failure might happen in ocfs2_dir_foreach() so it needs to be released. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Diffstat (limited to 'fs/ocfs2')
-rw-r--r--fs/ocfs2/journal.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c
index f9d01e25298d..7e5f7ce4761b 100644
--- a/fs/ocfs2/journal.c
+++ b/fs/ocfs2/journal.c
@@ -1277,11 +1277,12 @@ static int ocfs2_queue_orphans(struct ocfs2_super *osb,
1277 ocfs2_orphan_filldir); 1277 ocfs2_orphan_filldir);
1278 if (status) { 1278 if (status) {
1279 mlog_errno(status); 1279 mlog_errno(status);
1280 goto out; 1280 goto out_cluster;
1281 } 1281 }
1282 1282
1283 *head = priv.head; 1283 *head = priv.head;
1284 1284
1285out_cluster:
1285 ocfs2_meta_unlock(orphan_dir_inode, 0); 1286 ocfs2_meta_unlock(orphan_dir_inode, 0);
1286out: 1287out:
1287 mutex_unlock(&orphan_dir_inode->i_mutex); 1288 mutex_unlock(&orphan_dir_inode->i_mutex);