xfs
[Top] [All Lists]

Re: [PATCH] superblock endianess annotations

To: Christoph Hellwig <hch@xxxxxx>
Subject: Re: [PATCH] superblock endianess annotations
From: David Chinner <dgc@xxxxxxx>
Date: Mon, 23 Jul 2007 10:24:32 +1000
Cc: xfs@xxxxxxxxxxx
In-reply-to: <20070720163303.GB6902@lst.de>
References: <20070720163303.GB6902@lst.de>
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Mutt/1.4.2.1i
On Fri, Jul 20, 2007 at 06:33:03PM +0200, Christoph Hellwig wrote:
> Creates a new xfs_dsb_t that is __be annotated and keeps xfs_sb_t for
> the incore one.  xfs_xlatesb is renamed to xfs_sb_to_disk and only
> handles the incore -> disk conversion.  A new helper xfs_sb_from_disk
> handles the other direction and doesn't need the slightly hacky
> table-driven approach because we only ever read the full sb from disk.

Nice. There's some good cleanups in this patch....

> The handling of shared r/o filesystems has been buggy on little endian
> system and fixing this required shuffling around of some code in that
> area.

*nod*

>  
>  /*
> + * Superblock - on disk version.  Must match the in core version below.
> + */
> +typedef struct xfs_dsb {
> +     __be32          sb_magicnum;    /* magic number == XFS_SB_MAGIC */
.....
> +     __be16          sb_logsectsize; /* sector size for the log, bytes */
> +     __be32          sb_logsunit;    /* stripe unit size for the log */
> +     __be32          sb_features2;   /* additional feature bits */
> +} xfs_dsb_t;

Should this be packed so we don't reintroduce have the problem we currently
do with 32-vs-64-bit alignment of the last field(s) in the structure?

Cheers,

Dave.
-- 
Dave Chinner
Principal Engineer
SGI Australian Software Group


<Prev in Thread] Current Thread [Next in Thread>