diff options
author | Mark Fasheh <mark.fasheh@oracle.com> | 2007-12-03 14:06:23 -0800 |
---|---|---|
committer | Mark Fasheh <mark.fasheh@oracle.com> | 2007-12-17 10:49:43 -0800 |
commit | a86370fbb65a0a2cb21d28bf25a748f6cc04385b (patch) | |
tree | 787ec4c82c05a010c7ef38cb22b2a2ca73b2a6f3 | |
parent | ea9e7b5569a538123dc4d60ba36b9170ca8e8830 (diff) | |
download | lwn-a86370fbb65a0a2cb21d28bf25a748f6cc04385b.tar.gz lwn-a86370fbb65a0a2cb21d28bf25a748f6cc04385b.zip |
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>
-rw-r--r-- | fs/ocfs2/journal.c | 3 |
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, ocfs2_orphan_filldir); if (status) { mlog_errno(status); - goto out; + goto out_cluster; } *head = priv.head; +out_cluster: ocfs2_meta_unlock(orphan_dir_inode, 0); out: mutex_unlock(&orphan_dir_inode->i_mutex); |