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) {
Maybe Matching 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.
