Re: [PATCH] gfs2 endianness bug: be16 assigned to be32 field

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Sat, 14 Oct 2006, Al Viro wrote:
>
> -	leaf->lf_dirent_format = cpu_to_be16(GFS2_FORMAT_DE);
> +	leaf->lf_dirent_format = cpu_to_be32(GFS2_FORMAT_DE);

Hmm. Doesn't this change the on-disk format on a LE machine (eg x86)?

In other words, this change makes me nervous. A quick grep seems to 
indicate that nothing actually _uses_ this field, so maybe we don't really 
care, but I think we should double-check that this is what the GFS2 people 
really want.

If we don't want to change the format on a LE machine, then maybe the 
gfs2_leaf structure should be changed to be

	..
	__be16 lf_dirent_format;
	__be16 lf_unused;
	..

which should keep the bits in the same position on LE.

Regardless, the old code was clearly wrong, since it gives different 
on-disk format for a big-endian and a little-endian machine. Al's fix is 
proper, but perhaps people would prefer something that breaks the BE 
format rather than the LE format. Hmm?

Steven?

		Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux