From: Anton Blanchard Reduce size of struct dentry from 248 to 232 bytes on 64bit. - Reduce size of qstr by 8 bytes, placing int hash and int len together. We gain a further 4 byte saving when qstr is used in struct dentry since qstr goes from 24 to 16 bytes and the next member (d_lru) requires 8 byte alignment (which means 4 bytes of padding). - Move d_mounted to the end, since char d_iname[] only requires 1 byte alignment. This reduces struct dentry by another 4 bytes. With these changes the number of objects we can fit into a 4kB slab goes from 16 to 17 on ppc64. Note the above assumes the architecture naturally aligns types. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton --- 25-akpm/include/linux/dcache.h | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -puN include/linux/dcache.h~reduce-size-of-struct-dentry-on-64bit include/linux/dcache.h --- 25/include/linux/dcache.h~reduce-size-of-struct-dentry-on-64bit 2004-08-15 17:39:50.447563616 -0700 +++ 25-akpm/include/linux/dcache.h 2004-08-15 17:39:50.450563160 -0700 @@ -33,8 +33,8 @@ struct vfsmount; */ struct qstr { unsigned int hash; - const unsigned char *name; unsigned int len; + const unsigned char *name; }; struct dentry_stat_t { @@ -101,11 +101,11 @@ struct dentry { unsigned long d_time; /* used by d_revalidate */ struct dentry_operations *d_op; struct super_block *d_sb; /* The root of the dentry tree */ - int d_mounted; void *d_fsdata; /* fs-specific data */ struct rcu_head d_rcu; struct dcookie_struct *d_cookie; /* cookie, if any */ struct hlist_node d_hash; /* lookup hash list */ + int d_mounted; unsigned char d_iname[DNAME_INLINE_LEN_MIN]; /* small names */ }; _