Both were 32 bit fields followed by a 32 bit hole. This reduces size of `struct inode` by 8 bytes. Moving `i_fsnotify_marks` there as well so they can be in the same cacheline. Signed-off-by: Max Kellermann --- v1->v2: move `i_fsnotify_marks` up as well because "should better be in the same cacheline because these two are accessed on some performance sensitive paths" (Jan Kara) --- include/linux/fs.h | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/include/linux/fs.h b/include/linux/fs.h index 5b3a100aba77..fec047cc3327 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -813,7 +813,13 @@ struct inode { /* Misc */ struct inode_state_flags i_state; - /* 32-bit hole */ + +#ifdef CONFIG_FSNOTIFY + __u32 i_fsnotify_mask; /* all events this inode cares about */ + + struct fsnotify_mark_connector __rcu *i_fsnotify_marks; +#endif + struct rw_semaphore i_rwsem; /* Timestamp for writeback list ordering and age checks (jiffies). */ @@ -863,13 +869,6 @@ struct inode { unsigned i_dir_seq; }; - -#ifdef CONFIG_FSNOTIFY - __u32 i_fsnotify_mask; /* all events this inode cares about */ - /* 32-bit hole reserved for expanding i_fsnotify_mask */ - struct fsnotify_mark_connector __rcu *i_fsnotify_marks; -#endif - void *i_private; /* fs or device private pointer */ } __randomize_layout; -- 2.53.0