wangang wang
2008-Sep-22 08:18 UTC
[Ocfs2-devel] [PATCH 1/1] OCFS2: add validation in ocfs2_get_dentry()
we need do more checking for validation in ocfs2_get_dentry(). 1) OCFS2_INODE_DELETED flag 2) i_nlink the patch is against 1.4 git. Signed-off-by: Wengang wang <wen.gang.wang at oracle.com> -- diff --git a/fs/ocfs2/export.c b/fs/ocfs2/export.c index 649f3c8..36ccf27 100644 --- a/fs/ocfs2/export.c +++ b/fs/ocfs2/export.c @@ -49,6 +49,7 @@ static struct dentry *ocfs2_get_dentry(struct super_block *sb, void *vobjp) { struct ocfs2_inode_handle *handle = vobjp; struct inode *inode; + struct ocfs2_inode_info *oi = NULL; struct dentry *result; mlog_entry("(0x%p, 0x%p)\n", sb, handle); @@ -68,6 +69,17 @@ static struct dentry *ocfs2_get_dentry(struct super_block *sb, void *vobjp) return ERR_PTR(-ESTALE); } + oi = OCFS2_I(inode); + + spin_lock(&oi->ip_lock); + if ((OCFS2_I(inode)->ip_flags & OCFS2_INODE_DELETED) + || !inode->i_nlink) { + spin_unlock(&oi->ip_lock); + iput(inode); + return ERR_PTR(-ESTALE); + } + spin_unlock(&oi->ip_lock); + result = d_alloc_anon(inode); if (!result) {
Possibly Parallel Threads
- [PATCH 1/1] OCFS2: add nlink check in ocfs2_inode_revalidate()
- [PATCH 1/1] OCFS2: anti stale inode for nfs (for 1.4git)
- [PATCH 1/1] OCFS2: anti stale inode for nfs (V3)
- [PATCH 1/1] OCFS2: fix for nfs getting stale inode.
- [PATCH] ocfs2: Don't delete orphaned files if we are in the process of umount.