Re: [RFC] [PATCH 1/8] inode_diet: Replace inode.u.generic_ip with inode.i_private

Arnd Bergmann
2006-06-20T13:53:29Z

On Tuesday 20 June 2006 14:34, Steven Whitehouse wrote:
>
> Yes, although I'm not sure that it would be as significant as the memory
> saved by removing the pointer bearing in mind the relative numbers of
> the structures that you'd expect to see in a "normal" working system. We
> could also try and reduce this by creating a special inode cache which
> would be shared by all filesystems which did still need just struct
> inode + private pointer for example.

To take this further, you could indeed split struct inode into a smaller
struct that has all the important parts and a derived struct that has
i_private as well as other members that are used only by a minority
of file systems.

Alternatively, it might be possible to stuff i_private into the same
union as i_pipe, i_cdev and i_bdev. The rationale here being that
a file system implementing different file types already is complex
enough that you would normally want your own alloc_inode for a
derived struct. The simple file systems OTOH normally only support
regular files, and sometimes directories.