aboutsummaryrefslogtreecommitdiff
path: root/fs/bcachefs/btree_types.h
diff options
context:
space:
mode:
authorGravatar Kent Overstreet <kent.overstreet@gmail.com> 2021-08-30 15:54:41 -0400
committerGravatar Kent Overstreet <kent.overstreet@linux.dev> 2023-10-22 17:09:11 -0400
commitf21566f17aa8f100b6d106f657a75964a3482f54 (patch)
treecc8cc45e178130e28dbee618b47227954d05ed7f /fs/bcachefs/btree_types.h
parentbcachefs: Kill BTREE_ITER_NEED_PEEK (diff)
downloadlinux-f21566f17aa8f100b6d106f657a75964a3482f54.tar.gz
linux-f21566f17aa8f100b6d106f657a75964a3482f54.tar.bz2
linux-f21566f17aa8f100b6d106f657a75964a3482f54.zip
bcachefs: Kill BTREE_ITER_NODES
We really only need to distinguish between btree iterators and btree key cache iterators - this is more prep work for btree_path. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'fs/bcachefs/btree_types.h')
-rw-r--r--fs/bcachefs/btree_types.h44
1 files changed, 14 insertions, 30 deletions
diff --git a/fs/bcachefs/btree_types.h b/fs/bcachefs/btree_types.h
index d288404e35c4..56dc5fbb7c91 100644
--- a/fs/bcachefs/btree_types.h
+++ b/fs/bcachefs/btree_types.h
@@ -176,44 +176,38 @@ struct btree_node_iter {
} data[MAX_BSETS];
};
-enum btree_iter_type {
- BTREE_ITER_KEYS,
- BTREE_ITER_NODES,
- BTREE_ITER_CACHED,
-};
-
-#define BTREE_ITER_TYPE ((1 << 2) - 1)
-
/*
* Iterate over all possible positions, synthesizing deleted keys for holes:
*/
-#define BTREE_ITER_SLOTS (1 << 2)
+#define BTREE_ITER_SLOTS (1 << 0)
/*
* Indicates that intent locks should be taken on leaf nodes, because we expect
* to be doing updates:
*/
-#define BTREE_ITER_INTENT (1 << 3)
+#define BTREE_ITER_INTENT (1 << 1)
/*
* Causes the btree iterator code to prefetch additional btree nodes from disk:
*/
-#define BTREE_ITER_PREFETCH (1 << 4)
+#define BTREE_ITER_PREFETCH (1 << 2)
/*
* Indicates that this iterator should not be reused until transaction commit,
* either because a pending update references it or because the update depends
* on that particular key being locked (e.g. by the str_hash code, for hash
* table consistency)
*/
-#define BTREE_ITER_KEEP_UNTIL_COMMIT (1 << 5)
+#define BTREE_ITER_KEEP_UNTIL_COMMIT (1 << 3)
/*
* Used in bch2_btree_iter_traverse(), to indicate whether we're searching for
* @pos or the first key strictly greater than @pos
*/
-#define BTREE_ITER_IS_EXTENTS (1 << 6)
-#define BTREE_ITER_NOT_EXTENTS (1 << 7)
-#define BTREE_ITER_ERROR (1 << 8)
-#define BTREE_ITER_CACHED_NOFILL (1 << 9)
-#define BTREE_ITER_CACHED_NOCREATE (1 << 10)
-#define BTREE_ITER_WITH_UPDATES (1 << 11)
+#define BTREE_ITER_IS_EXTENTS (1 << 4)
+#define BTREE_ITER_NOT_EXTENTS (1 << 5)
+#define BTREE_ITER_ERROR (1 << 6)
+#define BTREE_ITER_CACHED (1 << 7)
+#define BTREE_ITER_CACHED_NOFILL (1 << 8)
+#define BTREE_ITER_CACHED_NOCREATE (1 << 9)
+#define BTREE_ITER_WITH_UPDATES (1 << 10)
+#define __BTREE_ITER_ALL_SNAPSHOTS (1 << 11)
#define BTREE_ITER_ALL_SNAPSHOTS (1 << 12)
enum btree_iter_uptodate {
@@ -256,7 +250,8 @@ struct btree_iter {
struct bpos real_pos;
enum btree_id btree_id:4;
- enum btree_iter_uptodate uptodate:3;
+ bool cached:1;
+ enum btree_iter_uptodate uptodate:2;
/*
* True if we've returned a key (and thus are expected to keep it
* locked), false after set_pos - for avoiding spurious transaction
@@ -282,17 +277,6 @@ struct btree_iter {
struct bkey k;
};
-static inline enum btree_iter_type
-btree_iter_type(const struct btree_iter *iter)
-{
- return iter->flags & BTREE_ITER_TYPE;
-}
-
-static inline bool btree_iter_is_cached(const struct btree_iter *iter)
-{
- return btree_iter_type(iter) == BTREE_ITER_CACHED;
-}
-
static inline struct btree_iter_level *iter_l(struct btree_iter *iter)
{
return iter->l + iter->level;