Commit a5a0a630 authored by Sunil Mushran's avatar Sunil Mushran Committed by Joel Becker

ocfs2: Add missing iput() during error handling in ocfs2_dentry_attach_lock()

In ocfs2_dentry_attach_lock(), if unable to get the dentry lock, we need to
call iput(inode) because a failure here means no d_instantiate(), which means
the normally matching iput() will not be called during dput(dentry).

This patch fixes the oops that accompanies the following message:
(3996,1):dlm_empty_lockres:2708 ERROR: lockres W00000000000000000a1046b06a4382 still has local locks!
kernel BUG in dlm_empty_lockres at /rpmbuild/smushran/BUILD/ocfs2-1.4.2/fs/ocfs2/dlm/dlmmaster.c:2709!
Signed-off-by: default avatarSunil Mushran <>
Signed-off-by: default avatarJoel Becker <>
parent 5b09b507
......@@ -290,6 +290,21 @@ int ocfs2_dentry_attach_lock(struct dentry *dentry,
* In case of error, manually free the allocation and do the iput().
* We need to do this because error here means no d_instantiate(),
* which means iput() will not be called during dput(dentry).
if (ret < 0 && !alias) {
BUG_ON(dl->dl_count != 1);
dentry->d_fsdata = NULL;
return ret;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment