On Tue 12-06-18 14:11:30, Amir Goldstein wrote: > Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx> > --- > > Linus, > > I tried to find some space to cram i_generation in case > I get rid of i_fsnotify_mask, but stumbled on a possible > "lossless compression". > > Any caveats with this change? One concern I'd have is that i_blkbits is used relatively frequently (e.g. for block device access) and 1-byte fetch can be slower than 4-byte fetch on some architectures if I'm not mistaken. I'm not sure how big problem that would be through. But if you're looking at reducing struct inode size, it appears we can save one long by reorganizing struct address_space - there's currently 4-byte hole after i_mmap_writeable and after wb_err. Honza > include/linux/fs.h | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/include/linux/fs.h b/include/linux/fs.h > index 760d8da1b6c7..6d0489613dc1 100644 > --- a/include/linux/fs.h > +++ b/include/linux/fs.h > @@ -274,6 +274,7 @@ struct writeback_control; > > /* > * Write life time hint values. > + * Stored in struct inode as u8. > */ > enum rw_hint { > WRITE_LIFE_NOT_SET = 0, > @@ -607,8 +608,8 @@ struct inode { > struct timespec i_ctime; > spinlock_t i_lock; /* i_blocks, i_bytes, maybe i_size */ > unsigned short i_bytes; > - unsigned int i_blkbits; > - enum rw_hint i_write_hint; > + u8 i_blkbits; > + u8 i_write_hint; > blkcnt_t i_blocks; > > #ifdef __NEED_I_SIZE_ORDERED > -- > 2.7.4 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR