wangang wang
2008-Sep-22 09:27 UTC
[Ocfs2-devel] [PATCH 1/1] OCFS2: add nlink check in ocfs2_inode_revalidate()
nlink should be also checked in ocfs2_inode_revalidate(). before setting flag OCFS2_INODE_DELETED ip_flags (between unlink and delete vote), the nlink may be 0. the patch is against 1.4 git. 1.2 svn should has the same patch with different line number. Signed-off-by: Wengang wang <wen.gang.wang at oracle.com> -- diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c index 591e693..6b5a83e 100644 --- a/fs/ocfs2/inode.c +++ b/fs/ocfs2/inode.c @@ -1186,6 +1186,13 @@ int ocfs2_inode_revalidate(struct dentry *dentry) status = -ENOENT; goto bail; } + + if (!inode->i_nlink) { + spin_unlock(&OCFS2_I(inode)->ip_lock); + mlog(0, "inode deleted!\n"); + status = -ENOENT; + goto bail; + } spin_unlock(&OCFS2_I(inode)->ip_lock); /* Let ocfs2_inode_lock do the work of updating our struct
Sunil Mushran
2008-Sep-22 21:36 UTC
[Ocfs2-devel] [PATCH 1/1] OCFS2: add nlink check in ocfs2_inode_revalidate()
NAK There is no voting in ocfs2 1.4. Secondly, i_nlink=0 does not mean inode is deleted. It simply means it has no more links. So returning enoent for a valid inode would be incorrect. wangang wang wrote:> nlink should be also checked in ocfs2_inode_revalidate(). > before setting flag OCFS2_INODE_DELETED ip_flags (between > unlink and delete vote), the nlink may be 0. > > the patch is against 1.4 git. > 1.2 svn should has the same patch with different line number. > > Signed-off-by: Wengang wang <wen.gang.wang at oracle.com> > -- > diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c > index 591e693..6b5a83e 100644 > --- a/fs/ocfs2/inode.c > +++ b/fs/ocfs2/inode.c > @@ -1186,6 +1186,13 @@ int ocfs2_inode_revalidate(struct dentry *dentry) > status = -ENOENT; > goto bail; > } > + > + if (!inode->i_nlink) { > + spin_unlock(&OCFS2_I(inode)->ip_lock); > + mlog(0, "inode deleted!\n"); > + status = -ENOENT; > + goto bail; > + } > spin_unlock(&OCFS2_I(inode)->ip_lock); > > /* Let ocfs2_inode_lock do the work of updating our struct > > _______________________________________________ > Ocfs2-devel mailing list > Ocfs2-devel at oss.oracle.com > http://oss.oracle.com/mailman/listinfo/ocfs2-devel >
Maybe Matching Threads
- [PATCH 1/1] OCFS2: add validation in ocfs2_get_dentry()
- [git patches] ocfs2 fixes
- [PATCH 0/40] ocfs2: Detach ocfs2 metadata I/O from struct inode
- errors ocfs2 with Ubuntu/Dapper/amd64
- [PATCH V2] ocfs2: need rollback when journal_access failed in ocfs2_orphan_add()