From: Christian Brauner <brauner@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Christian Brauner <brauner@kernel.org>, NeilBrown <neilb@suse.de>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>, Jeff Layton <jlayton@kernel.org>,
Jan Kara <jack@suse.cz>,
linux-fsdevel@vger.kernel.org
Subject: [PATCH v3 2/6] fs: reorder i_state bits
Date: Fri, 23 Aug 2024 14:47:36 +0200 [thread overview]
Message-ID: <20240823-work-i_state-v3-2-5cd5fd207a57@kernel.org> (raw)
In-Reply-To: <20240823-work-i_state-v3-0-5cd5fd207a57@kernel.org>
so that we can use the first bits to derive unique addresses from
i_state.
Signed-off-by: Christian Brauner <brauner@kernel.org>
---
include/linux/fs.h | 38 +++++++++++++++++++++-----------------
1 file changed, 21 insertions(+), 17 deletions(-)
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 1d895b8cb801..f257f8fad7d0 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2417,28 +2417,32 @@ static inline void kiocb_clone(struct kiocb *kiocb, struct kiocb *kiocb_src,
* i_count.
*
* Q: What is the difference between I_WILL_FREE and I_FREEING?
+ *
+ * __I_{SYNC,NEW,LRU_ISOLATING} are used to derive unique addresses to wait
+ * upon. There's one free address left.
*/
-#define I_DIRTY_SYNC (1 << 0)
-#define I_DIRTY_DATASYNC (1 << 1)
-#define I_DIRTY_PAGES (1 << 2)
-#define __I_NEW 3
+#define __I_NEW 0
#define I_NEW (1 << __I_NEW)
-#define I_WILL_FREE (1 << 4)
-#define I_FREEING (1 << 5)
-#define I_CLEAR (1 << 6)
-#define __I_SYNC 7
+#define __I_SYNC 1
#define I_SYNC (1 << __I_SYNC)
-#define I_REFERENCED (1 << 8)
+#define __I_LRU_ISOLATING 2
+#define I_LRU_ISOLATING (1 << __I_LRU_ISOLATING)
+
+#define I_DIRTY_SYNC (1 << 3)
+#define I_DIRTY_DATASYNC (1 << 4)
+#define I_DIRTY_PAGES (1 << 5)
+#define I_WILL_FREE (1 << 6)
+#define I_FREEING (1 << 7)
+#define I_CLEAR (1 << 8)
+#define I_REFERENCED (1 << 9)
#define I_LINKABLE (1 << 10)
#define I_DIRTY_TIME (1 << 11)
-#define I_WB_SWITCH (1 << 13)
-#define I_OVL_INUSE (1 << 14)
-#define I_CREATING (1 << 15)
-#define I_DONTCACHE (1 << 16)
-#define I_SYNC_QUEUED (1 << 17)
-#define I_PINNING_NETFS_WB (1 << 18)
-#define __I_LRU_ISOLATING 19
-#define I_LRU_ISOLATING (1 << __I_LRU_ISOLATING)
+#define I_WB_SWITCH (1 << 12)
+#define I_OVL_INUSE (1 << 13)
+#define I_CREATING (1 << 14)
+#define I_DONTCACHE (1 << 15)
+#define I_SYNC_QUEUED (1 << 16)
+#define I_PINNING_NETFS_WB (1 << 17)
#define I_DIRTY_INODE (I_DIRTY_SYNC | I_DIRTY_DATASYNC)
#define I_DIRTY (I_DIRTY_INODE | I_DIRTY_PAGES)
--
2.43.0
next prev parent reply other threads:[~2024-08-23 12:48 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-21 15:47 [PATCH RFC v2 0/6] inode: turn i_state into u32 Christian Brauner
2024-08-21 15:47 ` [PATCH RFC v2 1/6] fs: add i_state helpers Christian Brauner
2024-08-21 22:12 ` NeilBrown
2024-08-21 22:47 ` Linus Torvalds
2024-08-21 23:34 ` Dave Chinner
2024-08-23 0:08 ` NeilBrown
2024-08-22 8:27 ` Christian Brauner
2024-08-22 8:37 ` Linus Torvalds
2024-08-23 0:14 ` NeilBrown
2024-08-23 2:52 ` Linus Torvalds
2024-08-23 3:05 ` Linus Torvalds
2024-08-23 3:44 ` Linus Torvalds
2024-08-23 5:01 ` NeilBrown
2024-08-23 12:47 ` [PATCH v3 0/6] inode: turn i_state into u32 Christian Brauner
2024-08-23 12:47 ` [PATCH v3 1/6] fs: add i_state helpers Christian Brauner
2024-09-05 16:01 ` Jan Kara
2024-08-23 12:47 ` Christian Brauner [this message]
2024-09-05 16:02 ` [PATCH v3 2/6] fs: reorder i_state bits Jan Kara
2024-08-23 12:47 ` [PATCH v3 3/6] inode: port __I_SYNC to var event Christian Brauner
2024-09-05 16:02 ` Jan Kara
2024-08-23 12:47 ` [PATCH v3 4/6] inode: port __I_NEW " Christian Brauner
2024-09-06 13:30 ` Jan Kara
2024-08-23 12:47 ` [PATCH v3 5/6] inode: port __I_LRU_ISOLATING " Christian Brauner
2024-09-09 7:35 ` Jan Kara
2024-08-23 12:47 ` [PATCH v3 6/6] inode: make i_state a u32 Christian Brauner
2024-09-09 7:35 ` Jan Kara
2024-08-23 15:06 ` [PATCH v3 0/6] inode: turn i_state into u32 Josef Bacik
2024-08-21 22:28 ` [PATCH RFC v2 1/6] fs: add i_state helpers Dave Chinner
2024-08-21 22:53 ` Linus Torvalds
2024-08-21 15:47 ` [PATCH RFC v2 2/6] fs: reorder i_state bits Christian Brauner
2024-08-21 15:47 ` [PATCH RFC v2 3/6] writeback: port __I_SYNC to var event Christian Brauner
2024-08-21 15:47 ` [PATCH RFC v2 4/6] inode: port __I_NEW " Christian Brauner
2024-08-23 0:31 ` NeilBrown
2024-08-23 8:20 ` Christian Brauner
2024-08-23 11:07 ` Christian Brauner
2024-08-21 15:47 ` [PATCH RFC v2 5/6] inode: port __I_LRU_ISOLATING " Christian Brauner
2024-08-21 19:41 ` Jeff Layton
2024-08-22 8:53 ` Christian Brauner
2024-08-22 9:48 ` Mateusz Guzik
2024-08-22 11:10 ` Christian Brauner
2024-08-22 12:46 ` Mateusz Guzik
2024-08-23 0:36 ` NeilBrown
2024-08-23 2:24 ` Linus Torvalds
2024-08-23 8:29 ` Christian Brauner
2024-08-21 15:47 ` [PATCH RFC v2 6/6] inode: make i_state a u32 Christian Brauner
2024-08-21 21:03 ` Andreas Dilger
2024-08-22 8:31 ` Christian Brauner
2024-08-21 19:15 ` [PATCH RFC v2 0/6] inode: turn i_state into u32 Josef Bacik
2024-08-21 19:42 ` Jeff Layton
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=20240823-work-i_state-v3-2-5cd5fd207a57@kernel.org \
--to=brauner@kernel.org \
--cc=jack@suse.cz \
--cc=jlayton@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=neilb@suse.de \
--cc=peterz@infradead.org \
--cc=torvalds@linux-foundation.org \
/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.