--- include/linux/fs.h | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/include/linux/fs.h b/include/linux/fs.h index ed482e5d14a6..fd8e68352fbd 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -782,6 +782,10 @@ enum inode_state_flags_enum { #define I_DIRTY (I_DIRTY_INODE | I_DIRTY_PAGES) #define I_DIRTY_ALL (I_DIRTY | I_DIRTY_TIME) +struct inode_state_flags { + enum inode_state_flags_enum __state; +}; + /* * Keep mostly read-only and often accessed (especially for * the RCU path lookup and 'stat' data) fields at the beginning @@ -840,7 +844,7 @@ struct inode { #endif /* Misc */ - enum inode_state_flags_enum i_state; + struct inode_state_flags i_state; /* 32-bit hole */ struct rw_semaphore i_rwsem; @@ -908,44 +912,44 @@ struct inode { static inline enum inode_state_flags_enum inode_state_read(struct inode *inode) { lockdep_assert_held(&inode->i_lock); - return inode->i_state; + return inode->i_state.__state; } static inline enum inode_state_flags_enum inode_state_read_unstable(struct inode *inode) { - return READ_ONCE(inode->i_state); + return READ_ONCE(inode->i_state.__state); } static inline void inode_state_add(struct inode *inode, enum inode_state_flags_enum newflags) { lockdep_assert_held(&inode->i_lock); - WRITE_ONCE(inode->i_state, inode->i_state | newflags); + WRITE_ONCE(inode->i_state.__state, inode->i_state.__state | newflags); } static inline void inode_state_add_unchecked(struct inode *inode, enum inode_state_flags_enum newflags) { - WRITE_ONCE(inode->i_state, inode->i_state | newflags); + WRITE_ONCE(inode->i_state.__state, inode->i_state.__state | newflags); } static inline void inode_state_del(struct inode *inode, enum inode_state_flags_enum rmflags) { lockdep_assert_held(&inode->i_lock); - WRITE_ONCE(inode->i_state, inode->i_state & ~rmflags); + WRITE_ONCE(inode->i_state.__state, inode->i_state.__state & ~rmflags); } static inline void inode_state_del_unchecked(struct inode *inode, enum inode_state_flags_enum rmflags) { - WRITE_ONCE(inode->i_state, inode->i_state & ~rmflags); + WRITE_ONCE(inode->i_state.__state, inode->i_state.__state & ~rmflags); } static inline void inode_state_set_unchecked(struct inode *inode, enum inode_state_flags_enum newflags) { - WRITE_ONCE(inode->i_state, newflags); + WRITE_ONCE(inode->i_state.__state, newflags); } static inline void inode_set_cached_link(struct inode *inode, char *link, int linklen) -- 2.43.0