[Ocfs2-devel] [PATCH 1/1] OCFS2: add nlink check in ocfs2_inode_revalidate()

Sunil Mushran sunil.mushran at oracle.com
Mon Sep 22 14:36:02 PDT 2008


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
>   




More information about the Ocfs2-devel mailing list