[Ocfs2-devel] [PATCH] ocfs2: fix BUG_ON issue in ocfs2_set_new_buffer_uptodate

Jeff Liu jeff.liu at oracle.com
Thu Nov 8 21:22:00 PST 2012


On 11/09/2012 12:43 PM, Tiger Yang wrote:
> If buffer already in cache, call ocfs2_init_xattr_bucket will cause BUG_ON
> in ocfs2_set_new_buffer_uptodate. The check of ocfs2_buffer_uptodate
> in ocfs2_init_xattr_bucket wouldn't help this. So replace it with
> ocfs2_read_xattr_bucket to initialize the bucket to avoid this issue.
> 
> Signed-off-by: Tiger Yang <tiger.yang at oracle.com>
> ---
>  fs/ocfs2/xattr.c |   12 ++----------
>  1 files changed, 2 insertions(+), 10 deletions(-)
> 
> diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
> index dce35dd..0085261 100644
> --- a/fs/ocfs2/xattr.c
> +++ b/fs/ocfs2/xattr.c
> @@ -4640,11 +4640,7 @@ static int ocfs2_divide_xattr_bucket(struct inode *inode,
>  		goto out;
>  	}
>  
> -	/*
> -	 * Even if !new_bucket_head, we're overwriting t_bucket.  Thus,
> -	 * there's no need to read it.
> -	 */
> -	ret = ocfs2_init_xattr_bucket(t_bucket, new_blk);
> +	ret = ocfs2_read_xattr_bucket(t_bucket, new_blk);
>  	if (ret) {
>  		mlog_errno(ret);
>  		goto out;
> @@ -4806,11 +4802,7 @@ static int ocfs2_cp_xattr_bucket(struct inode *inode,
>  	if (ret)
>  		goto out;
>  
> -	/*
> -	 * Even if !t_is_new, we're overwriting t_bucket.  Thus,
> -	 * there's no need to read it.
> -	 */
> -	ret = ocfs2_init_xattr_bucket(t_bucket, t_blkno);
> +	ret = ocfs2_read_xattr_bucket(t_bucket, t_blkno);
>  	if (ret)
>  		goto out;
>  
Looks good to me.
You can add a Reviewed-by: Jie Liu <jeff.liu at oracle.com>

Thanks,
-Jeff



More information about the Ocfs2-devel mailing list