Loading fs/bcachefs/bset.c +10 −19 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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 = {}; Loading Loading @@ -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; Loading @@ -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: */ Loading Loading @@ -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; Loading Loading @@ -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); } Loading Loading @@ -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) Loading Loading @@ -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) Loading Loading @@ -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; Loading fs/bcachefs/bset.h +4 −2 Original line number Diff line number Diff line Loading @@ -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); \ Loading Loading @@ -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) { Loading fs/bcachefs/btree_cache.c +0 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); Loading fs/bcachefs/btree_io.c +0 −7 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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)) && Loading Loading @@ -637,8 +634,6 @@ static int __btree_err(int ret, __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; Loading Loading @@ -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; Loading Loading @@ -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; Loading fs/bcachefs/btree_io.h +0 −2 Original line number Diff line number Diff line Loading @@ -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); Loading Loading
fs/bcachefs/bset.c +10 −19 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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 = {}; Loading Loading @@ -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; Loading @@ -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: */ Loading Loading @@ -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; Loading Loading @@ -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); } Loading Loading @@ -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) Loading Loading @@ -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) Loading Loading @@ -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; Loading
fs/bcachefs/bset.h +4 −2 Original line number Diff line number Diff line Loading @@ -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); \ Loading Loading @@ -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) { Loading
fs/bcachefs/btree_cache.c +0 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); Loading
fs/bcachefs/btree_io.c +0 −7 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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)) && Loading Loading @@ -637,8 +634,6 @@ static int __btree_err(int ret, __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; Loading Loading @@ -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; Loading Loading @@ -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; Loading
fs/bcachefs/btree_io.h +0 −2 Original line number Diff line number Diff line Loading @@ -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); Loading