Commit 062d3403 authored by Li Dongyang's avatar Li Dongyang Committed by Mark Fasheh

ocfs2: use OCFS2_INODE_SKIP_ORPHAN_DIR in ocfs2_mknod error path

Mark the inode with flag OCFS2_INODE_SKIP_ORPHAN_DIR in ocfs2_mknod, so we
can kill the inode in case of error.

[ Fixed up comment style -Mark ]
Signed-off-by: default avatarLi Dongyang <lidongyang@novell.com>
Signed-off-by: default avatarMark Fasheh <mfasheh@suse.com>
parent ab41fdc8
...@@ -445,11 +445,6 @@ leave: ...@@ -445,11 +445,6 @@ leave:
ocfs2_free_dir_lookup_result(&lookup); ocfs2_free_dir_lookup_result(&lookup);
if ((status < 0) && inode) {
clear_nlink(inode);
iput(inode);
}
if (inode_ac) if (inode_ac)
ocfs2_free_alloc_context(inode_ac); ocfs2_free_alloc_context(inode_ac);
...@@ -459,6 +454,17 @@ leave: ...@@ -459,6 +454,17 @@ leave:
if (meta_ac) if (meta_ac)
ocfs2_free_alloc_context(meta_ac); ocfs2_free_alloc_context(meta_ac);
/*
* We should call iput after the i_mutex of the bitmap been
* unlocked in ocfs2_free_alloc_context, or the
* ocfs2_delete_inode will mutex_lock again.
*/
if ((status < 0) && inode) {
OCFS2_I(inode)->ip_flags |= OCFS2_INODE_SKIP_ORPHAN_DIR;
clear_nlink(inode);
iput(inode);
}
mlog_exit(status); mlog_exit(status);
return status; return status;
......
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