summaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/namei.c
diff options
context:
space:
mode:
authorLi Dongyang <lidongyang@novell.com>2010-04-22 16:11:19 +0800
committerMark Fasheh <mfasheh@suse.com>2010-04-23 11:03:49 -0700
commitd4cd1871cff68e188dadcf6d1280762522b643eb (patch)
treecf3a6426342378956f4d797066ec060eb3939083 /fs/ocfs2/namei.c
parentd5a30458a90597915977f06e79406b664a41b8ac (diff)
downloadop-kernel-dev-d4cd1871cff68e188dadcf6d1280762522b643eb.zip
op-kernel-dev-d4cd1871cff68e188dadcf6d1280762522b643eb.tar.gz
ocfs2: add OCFS2_INODE_SKIP_ORPHAN_DIR flag and honor it in the inode wipe code
Currently in the error path of ocfs2_symlink and ocfs2_mknod, we just call iput with the inode we failed with, but the inode wipe code will complain because we don't add the inode to orphan dir. One solution would be to lock the orphan dir during the entire transaction, but that's too heavy for a rare error path. Instead, we add a flag, OCFS2_INODE_SKIP_ORPHAN_DIR which tells the inode wipe code that it won't find this inode in the orphan dir. [ Merge fixes and comment style cleanups -Mark ] Signed-off-by: Li Dongyang <lidongyang@novell.com> Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Diffstat (limited to 'fs/ocfs2/namei.c')
-rw-r--r--fs/ocfs2/namei.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c
index b1eb50a..ae315c9 100644
--- a/fs/ocfs2/namei.c
+++ b/fs/ocfs2/namei.c
@@ -1976,6 +1976,7 @@ static int ocfs2_orphan_add(struct ocfs2_super *osb,
}
le32_add_cpu(&fe->i_flags, OCFS2_ORPHANED_FL);
+ OCFS2_I(inode)->ip_flags &= ~OCFS2_INODE_SKIP_ORPHAN_DIR;
/* Record which orphan dir our inode now resides
* in. delete_inode will use this to determine which orphan
OpenPOWER on IntegriCloud