[PATCH] inode_diet: Replace inode.u.generic_ip with inode.i_private
authorTheodore Ts'o <tytso@mit.edu>
Wed, 27 Sep 2006 08:50:46 +0000 (01:50 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 27 Sep 2006 15:26:17 +0000 (08:26 -0700)
commit8e18e2941c53416aa219708e7dcad21fb4bd6794
tree44118f8b09556193ac93e0b71aecfa3e1d4bc182
parent6a1d9805ec506d8b9d04450997707da5f643d87c
[PATCH] inode_diet: Replace inode.u.generic_ip with inode.i_private

The following patches reduce the size of the VFS inode structure by 28 bytes
on a UP x86.  (It would be more on an x86_64 system).  This is a 10% reduction
in the inode size on a UP kernel that is configured in a production mode
(i.e., with no spinlock or other debugging functions enabled; if you want to
save memory taken up by in-core inodes, the first thing you should do is
disable the debugging options; they are responsible for a huge amount of bloat
in the VFS inode structure).

This patch:

The filesystem or device-specific pointer in the inode is inside a union,
which is pretty pointless given that all 30+ users of this field have been
using the void pointer.  Get rid of the union and rename it to i_private, with
a comment to explain who is allowed to use the void pointer.  This is just a
cleanup, but it allows us to reuse the union 'u' for something something where
the union will actually be used.

[judith@osdl.org: powerpc build fix]
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Judith Lebzelter <judith@osdl.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
36 files changed:
arch/powerpc/platforms/cell/spufs/inode.c
arch/powerpc/platforms/pseries/hvCall_inst.c
arch/s390/hypfs/inode.c
arch/s390/kernel/debug.c
block/blktrace.c
drivers/i2c/chips/tps65010.c
drivers/infiniband/hw/ipath/ipath_fs.c
drivers/infiniband/ulp/ipoib/ipoib_fs.c
drivers/misc/ibmasm/ibmasmfs.c
drivers/net/irda/vlsi_ir.h
drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c
drivers/oprofile/oprofilefs.c
drivers/pci/hotplug/cpqphp_sysfs.c
drivers/usb/core/devio.c
drivers/usb/core/inode.c
drivers/usb/gadget/inode.c
drivers/usb/host/isp116x-hcd.c
drivers/usb/host/uhci-debug.c
drivers/usb/mon/mon_stat.c
drivers/usb/mon/mon_text.c
fs/autofs/inode.c
fs/autofs/symlink.c
fs/binfmt_misc.c
fs/debugfs/file.c
fs/debugfs/inode.c
fs/devpts/inode.c
fs/freevxfs/vxfs.h
fs/freevxfs/vxfs_inode.c
fs/fuse/control.c
fs/inode.c
fs/jffs/inode-v23.c
fs/libfs.c
fs/ocfs2/dlmglue.c
include/linux/fs.h
kernel/relay.c
security/inode.c