All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mateusz Guzik <mjguzik@gmail.com>
To: brauner@kernel.org
Cc: viro@zeniv.linux.org.uk, jack@suse.cz,
	linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	josef@toxicpanda.com, kernel-team@fb.com, amir73il@gmail.com,
	linux-btrfs@vger.kernel.org, linux-ext4@vger.kernel.org,
	linux-xfs@vger.kernel.org, ocfs2-devel@lists.linux.dev,
	Mateusz Guzik <mjguzik@gmail.com>
Subject: [PATCH v3 4/4] type switch
Date: Thu, 11 Sep 2025 06:55:57 +0200	[thread overview]
Message-ID: <20250911045557.1552002-5-mjguzik@gmail.com> (raw)
In-Reply-To: <20250911045557.1552002-1-mjguzik@gmail.com>

---
 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


      parent reply	other threads:[~2025-09-11  4:56 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-11  4:55 [RFC PATCH v3 0/4] ->i_state accessors Mateusz Guzik
2025-09-11  4:55 ` [PATCH v3 1/4] fs: expand dump_inode() Mateusz Guzik
2025-09-11  5:54   ` Dave Chinner
2025-09-11  4:55 ` [PATCH v3 2/4] fs: hide ->i_state handling behind accessors Mateusz Guzik
2025-09-11  6:52   ` Dave Chinner
2025-09-11  9:00     ` Mateusz Guzik
2025-09-15 12:41   ` Christian Brauner
2025-09-15 13:27     ` Mateusz Guzik
2025-09-15 13:41       ` Christian Brauner
2025-09-15 13:48         ` Mateusz Guzik
2025-09-15 14:16           ` Christian Brauner
2025-09-11  4:55 ` [PATCH v3 3/4] convert all filesystems to use the new ->i_state accessors Mateusz Guzik
2025-09-11  4:55 ` Mateusz Guzik [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250911045557.1552002-5-mjguzik@gmail.com \
    --to=mjguzik@gmail.com \
    --cc=amir73il@gmail.com \
    --cc=brauner@kernel.org \
    --cc=jack@suse.cz \
    --cc=josef@toxicpanda.com \
    --cc=kernel-team@fb.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=ocfs2-devel@lists.linux.dev \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.