]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bcachefs: for_each_bset() declares loop iter
authorKent Overstreet <kent.overstreet@linux.dev>
Wed, 8 May 2024 05:42:10 +0000 (01:42 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Thu, 9 May 2024 20:23:34 +0000 (16:23 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/bset.c
fs/bcachefs/bset.h
fs/bcachefs/btree_cache.c
fs/bcachefs/btree_io.c
fs/bcachefs/btree_io.h
fs/bcachefs/btree_update_interior.c

index 3bb477840eab6b1461f454c3c71b386589aa4afb..575e1d0b6eeb2d0054799e90c10669c4ef95cdc6 100644 (file)
@@ -103,8 +103,6 @@ void bch2_dump_bset(struct bch_fs *c, struct btree *b,
 
 void bch2_dump_btree_node(struct bch_fs *c, struct btree *b)
 {
-       struct bset_tree *t;
-
        console_lock();
        for_each_bset(b, t)
                bch2_dump_bset(c, b, bset(b, t), t - b->set);
@@ -136,7 +134,6 @@ void bch2_dump_btree_node_iter(struct btree *b,
 
 struct btree_nr_keys bch2_btree_node_count_keys(struct btree *b)
 {
-       struct bset_tree *t;
        struct bkey_packed *k;
        struct btree_nr_keys nr = {};
 
@@ -198,7 +195,6 @@ void bch2_btree_node_iter_verify(struct btree_node_iter *iter,
 {
        struct btree_node_iter_set *set, *s2;
        struct bkey_packed *k, *p;
-       struct bset_tree *t;
 
        if (bch2_btree_node_iter_end(iter))
                return;
@@ -213,12 +209,14 @@ void bch2_btree_node_iter_verify(struct btree_node_iter *iter,
        /* Verify that set->end is correct: */
        btree_node_iter_for_each(iter, set) {
                for_each_bset(b, t)
-                       if (set->end == t->end_offset)
+                       if (set->end == t->end_offset) {
+                               BUG_ON(set->k < btree_bkey_first_offset(t) ||
+                                      set->k >= t->end_offset);
                                goto found;
+                       }
                BUG();
 found:
-               BUG_ON(set->k < btree_bkey_first_offset(t) ||
-                      set->k >= t->end_offset);
+               do {} while (0);
        }
 
        /* Verify iterator is sorted: */
@@ -377,11 +375,9 @@ static struct bkey_float *bkey_float(const struct btree *b,
        return ro_aux_tree_base(b, t)->f + idx;
 }
 
-static void bset_aux_tree_verify(const struct btree *b)
+static void bset_aux_tree_verify(struct btree *b)
 {
 #ifdef CONFIG_BCACHEFS_DEBUG
-       const struct bset_tree *t;
-
        for_each_bset(b, t) {
                if (t->aux_data_offset == U16_MAX)
                        continue;
@@ -685,20 +681,20 @@ static __always_inline void make_bfloat(struct btree *b, struct bset_tree *t,
 }
 
 /* bytes remaining - only valid for last bset: */
-static unsigned __bset_tree_capacity(const struct btree *b, const struct bset_tree *t)
+static unsigned __bset_tree_capacity(struct btree *b, const struct bset_tree *t)
 {
        bset_aux_tree_verify(b);
 
        return btree_aux_data_bytes(b) - t->aux_data_offset * sizeof(u64);
 }
 
-static unsigned bset_ro_tree_capacity(const struct btree *b, const struct bset_tree *t)
+static unsigned bset_ro_tree_capacity(struct btree *b, const struct bset_tree *t)
 {
        return __bset_tree_capacity(b, t) /
                (sizeof(struct bkey_float) + sizeof(u8));
 }
 
-static unsigned bset_rw_tree_capacity(const struct btree *b, const struct bset_tree *t)
+static unsigned bset_rw_tree_capacity(struct btree *b, const struct bset_tree *t)
 {
        return __bset_tree_capacity(b, t) / sizeof(struct rw_aux_tree);
 }
@@ -1374,8 +1370,6 @@ void bch2_btree_node_iter_init(struct btree_node_iter *iter,
 void bch2_btree_node_iter_init_from_start(struct btree_node_iter *iter,
                                          struct btree *b)
 {
-       struct bset_tree *t;
-
        memset(iter, 0, sizeof(*iter));
 
        for_each_bset(b, t)
@@ -1481,7 +1475,6 @@ struct bkey_packed *bch2_btree_node_iter_prev_all(struct btree_node_iter *iter,
 {
        struct bkey_packed *k, *prev = NULL;
        struct btree_node_iter_set *set;
-       struct bset_tree *t;
        unsigned end = 0;
 
        if (bch2_expensive_debug_checks)
@@ -1550,9 +1543,7 @@ struct bkey_s_c bch2_btree_node_iter_peek_unpack(struct btree_node_iter *iter,
 
 void bch2_btree_keys_stats(const struct btree *b, struct bset_stats *stats)
 {
-       const struct bset_tree *t;
-
-       for_each_bset(b, t) {
+       for_each_bset_c(b, t) {
                enum bset_aux_tree_type type = bset_aux_tree_type(t);
                size_t j;
 
index 120a79fd456bd5ccb50c2608aac4940b63cfeed9..5c6c7a14fa0f485895f58759fd201b54c24b43b3 100644 (file)
@@ -206,7 +206,10 @@ static inline size_t btree_aux_data_u64s(const struct btree *b)
 }
 
 #define for_each_bset(_b, _t)                                          \
-       for (_t = (_b)->set; _t < (_b)->set + (_b)->nsets; _t++)
+       for (struct bset_tree *_t = (_b)->set; _t < (_b)->set + (_b)->nsets; _t++)
+
+#define for_each_bset_c(_b, _t)                                                \
+       for (const struct bset_tree *_t = (_b)->set; _t < (_b)->set + (_b)->nsets; _t++)
 
 #define bset_tree_for_each_key(_b, _t, _k)                             \
        for (_k = btree_bkey_first(_b, _t);                             \
@@ -294,7 +297,6 @@ static inline struct bset_tree *
 bch2_bkey_to_bset_inlined(struct btree *b, struct bkey_packed *k)
 {
        unsigned offset = __btree_node_key_to_offset(b, k);
-       struct bset_tree *t;
 
        for_each_bset(b, t)
                if (offset <= t->end_offset) {
index 2c226e0cc26302192e8ae7d66950d2cd86337400..7dd35d6224d94445df935363daca40fe22e3d70a 100644 (file)
@@ -881,7 +881,6 @@ static struct btree *__bch2_btree_node_get(struct btree_trans *trans, struct btr
        struct bch_fs *c = trans->c;
        struct btree_cache *bc = &c->btree_cache;
        struct btree *b;
-       struct bset_tree *t;
        bool need_relock = false;
        int ret;
 
@@ -1001,7 +1000,6 @@ struct btree *bch2_btree_node_get(struct btree_trans *trans, struct btree_path *
 {
        struct bch_fs *c = trans->c;
        struct btree *b;
-       struct bset_tree *t;
        int ret;
 
        EBUG_ON(level >= BTREE_MAX_DEPTH);
@@ -1078,7 +1076,6 @@ struct btree *bch2_btree_node_get_noiter(struct btree_trans *trans,
        struct bch_fs *c = trans->c;
        struct btree_cache *bc = &c->btree_cache;
        struct btree *b;
-       struct bset_tree *t;
        int ret;
 
        EBUG_ON(level >= BTREE_MAX_DEPTH);
index 9dcaccda7b935732bcdafbc2af8c5e615a874e23..e14c404d25c122fbff9227c7e43b222df37a4c5e 100644 (file)
@@ -229,7 +229,6 @@ static bool should_compact_bset(struct btree *b, struct bset_tree *t,
 
 static bool bch2_drop_whiteouts(struct btree *b, enum compact_mode mode)
 {
-       struct bset_tree *t;
        bool ret = false;
 
        for_each_bset(b, t) {
@@ -451,8 +450,6 @@ static bool btree_node_compact(struct bch_fs *c, struct btree *b)
 
 void bch2_btree_build_aux_trees(struct btree *b)
 {
-       struct bset_tree *t;
-
        for_each_bset(b, t)
                bch2_bset_build_aux_tree(b, t,
                                !bset_written(b, bset(b, t)) &&
@@ -637,8 +634,6 @@ fsck_err:
 __cold
 void bch2_btree_node_drop_keys_outside_node(struct btree *b)
 {
-       struct bset_tree *t;
-
        for_each_bset(b, t) {
                struct bset *i = bset(b, t);
                struct bkey_packed *k;
@@ -1987,7 +1982,6 @@ static void btree_write_submit(struct work_struct *work)
 void __bch2_btree_node_write(struct bch_fs *c, struct btree *b, unsigned flags)
 {
        struct btree_write_bio *wbio;
-       struct bset_tree *t;
        struct bset *i;
        struct btree_node *bn = NULL;
        struct btree_node_entry *bne = NULL;
@@ -2244,7 +2238,6 @@ bool bch2_btree_post_write_cleanup(struct bch_fs *c, struct btree *b)
 {
        bool invalidated_iter = false;
        struct btree_node_entry *bne;
-       struct bset_tree *t;
 
        if (!btree_node_just_written(b))
                return false;
index e251cb6b965ff0a8bdc4aa0684dfdcaa315c32d6..2b8b564fc5608c06f4cdcd617b7d0708b2048020 100644 (file)
@@ -81,8 +81,6 @@ static inline bool should_compact_bset_lazy(struct btree *b,
 
 static inline bool bch2_maybe_compact_whiteouts(struct bch_fs *c, struct btree *b)
 {
-       struct bset_tree *t;
-
        for_each_bset(b, t)
                if (should_compact_bset_lazy(b, t))
                        return bch2_compact_whiteouts(c, b, COMPACT_LAZY);
index 80eb862a89620f29a681572f109e92f8bc9c06e4..60b8544cea48ce72d34f7d3d03e6b8a850ee012a 100644 (file)
@@ -160,7 +160,6 @@ topology_repair:
 static void __bch2_btree_calc_format(struct bkey_format_state *s, struct btree *b)
 {
        struct bkey_packed *k;
-       struct bset_tree *t;
        struct bkey uk;
 
        for_each_bset(b, t)