[Ocfs2-devel] [PATCH] ocfs2: Use cpu_to_le16 for e_leaf_clusters in ocfs2_bg_discontig_add_extent.

Joel Becker Joel.Becker at oracle.com
Sun Sep 12 23:29:08 PDT 2010


On Mon, Sep 13, 2010 at 02:09:53PM +0800, Tao Ma wrote:
> e_leaf_clusters is a le16, so use cpu_to_le16 instead
> of cpu_to_le32.
> 
> Signed-off-by: Tao Ma <tao.ma at oracle.com>

	You're right that we need to swap as an le16.

> @@ -348,7 +348,7 @@ static void ocfs2_bg_discontig_add_extent(struct ocfs2_super *osb,
>  	rec->e_blkno = cpu_to_le64(p_blkno);
>  	rec->e_cpos = cpu_to_le32(le16_to_cpu(bg->bg_bits) /
>  				  le16_to_cpu(cl->cl_bpc));
> -	rec->e_leaf_clusters = cpu_to_le32(clusters);
> +	rec->e_leaf_clusters = cpu_to_le16(clusters);

	For a second I was worried, "what about overflow if clusters >
16bits?"  Of course, this is coming from discontig stuff which starts at
cpg, so it can't overflow.  Maybe discontig_add_extent should take
"unsigned int clusters" instead of "u32 clusters" to signify that the
size of 'clusters isn't important here?

Joel

-- 

"Friends may come and go, but enemies accumulate." 
        - Thomas Jones

Joel Becker
Consulting Software Developer
Oracle
E-mail: joel.becker at oracle.com
Phone: (650) 506-8127



More information about the Ocfs2-devel mailing list