Re: [PATCH 1/7] omfs: define filesystem structures

Arnd Bergmann
2008-03-29T03:16:37Z

On Saturday 29 March 2008, Bob Copeland wrote:
> On Fri, Mar 28, 2008 at 09:19:40PM +0100, Pavel Machek wrote:
> > On Wed 2008-03-26 20:45:54, Bob Copeland wrote:
> > > +struct omfs_header {
> > > +   __be64 h_self;
> > > +   __be32 h_body_size;
> > > +   __be16 h_crc;
> > > +   char h_fill1[2];
> > > +   u8 h_version;
> > > +   char h_type;
> > > +   u8 h_magic;
> > > +   u8 h_check_xor;
> > > +   __be32 h_fill2;
> > > +};
> >
> > attribute packed or something? Some strange machine (alpha?) may
> > decide to align u8s at 32bit boundaries...
>
> Thanks, I guess this applies for all the on disk structs.

Actually, we don't normally add the attribute((packed)) in cases like
this one, where you already have manual padding in it. Marking this
structure packed would only cause a small performance loss on accesses
of its members on certain architectures, but not have an impact on
correctness.

No architecture supported by Linux requires higher than natural alignment
for any integer types, and a lot of other code would break otherwise.