[Ocfs2-tools-devel] [PATCH] fsck.ocfs2: Update xattr tree if there is a change.

Jun Yang tiger.yang at oracle.com
Wed Dec 2 00:30:29 PST 2009


Acked-by: Tiger Yang <tiger.yang at oracle.com>


On 11/27/2009 02:29 PM, Tao Ma wrote:
> When we check the xattr tree, we check the ocfs2_extent_list first and
> then every ocfs2_extent_rec one by one.
> So we'd better write the tree if there is really a change so that
> the later ocfs2_xattr_get_rec can get the update tree information.
>
> Signed-off-by: Tao Ma<tao.ma at oracle.com>
> Cc: Tiger Yang<tiger.yang at oracle.com>
> ---
>   fsck.ocfs2/xattr.c |   15 +++++++++++++++
>   1 files changed, 15 insertions(+), 0 deletions(-)
>
> diff --git a/fsck.ocfs2/xattr.c b/fsck.ocfs2/xattr.c
> index 98d81f7..e1bad59 100644
> --- a/fsck.ocfs2/xattr.c
> +++ b/fsck.ocfs2/xattr.c
> @@ -607,6 +607,21 @@ static errcode_t o2fsck_check_xattr_index_block(o2fsck_state *ost,
>   	if (ret)
>   		return ret;
>
> +	/*
> +	 * We need to write the changed xattr tree first so that the following
> +	 * ocfs2_xattr_get_rec can get the updated information.
> +	 */
> +	if (*changed) {
> +		ret = ocfs2_write_xattr_block(ost->ost_fs,
> +					      di->i_xattr_loc, (char *)xb);
> +		if (ret) {
> +			com_err(whoami, ret, "while writing root block of"
> +				" extended attributes ");
> +			return ret;
> +		}
> +	}
> +
> +
>   	while (name_hash>  0) {
>   		ret = ocfs2_xattr_get_rec(ost->ost_fs, xb, name_hash,&p_blkno,
>   					&e_cpos,&num_clusters);




More information about the Ocfs2-tools-devel mailing list