Hi all Now that RCU applied on 'struct file' seems stable, we can place f_rcuhead in a memory location that is not anymore used at call_rcu(&f->f_rcuhead, file_free_rcu) time, to reduce the size of this critical kernel object. The trick I used is to move f_rcuhead and f_list in an union and defining macros to access f_list and f_rcuhead Unfortunatly f_list was also used in IPVS so I had to change include/net/ip_vs.h and net/ipv4/ipvs/ip_vs_ctl.c, changing their f_list to ipvs_f_list to avoid name clash. (This is why I send this mail to IPVS maintainers) Thank you Signed-off-by: Eric Dumazet