Re: [Ext2-devel] [RFC] [PATCH] Clean up fs.h union for ext2

Andreas Dilger
2001-12-27T18:17:39Z

On Dec 27, 2001 04:21 +0100, Daniel Phillips wrote:
> The strategy is to abstract all references to the struct inode union through
> an inline function:
>
> static inline struct ext2_inode_info *ext2_i (struct inode *inode)
> {
> return &(inode->u.ext2_inode_info);
> }
>
> There is some grist here for the mills of language lawyers here. Note the
> compilation warning:
>
> ialloc.c:336: warning: passing arg 1 of `ext2_i' discards qualifiers from
> pointer target type

Why not just declare ext2_i like the following? It _should_ work:

static inline struct ext2_inode_info *ext2_i(const struct inode *inode)
{
return &(inode->u.ext2_inode_info);
}

Minor nit: this is already done for the ext3 code, but it looks like:

#define EXT3_I (&((inode)->u.ext3_i))

We already have the EXT3_SB, so I thought I would be consistent with it:

#define EXT3_SB (&((sb)->u.ext3_sb))

Do people like the inline version better? Either way, I would like to make
the ext2 and ext3 codes more similar, rather than less.

Cheers, Andreas
--
Andreas Dilger