X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libbcachefs%2Fbset.h;h=fd2915a150708f9b9e5203d761c2ea2342e872ef;hb=284c1f5148afb088e64c8a77983a43732c4d499b;hp=acef143091d045cc24bd930bd370bc5a2783ad73;hpb=c1f55a60c41ca5ab8ed7a0893c3d29f8006da82a;p=bcachefs-tools-debian diff --git a/libbcachefs/bset.h b/libbcachefs/bset.h index acef143..fd2915a 100644 --- a/libbcachefs/bset.h +++ b/libbcachefs/bset.h @@ -291,6 +291,21 @@ static inline int bkey_cmp_p_or_unp(const struct btree *b, return __bch2_bkey_cmp_left_packed_format_checked(b, l, r); } +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) { + EBUG_ON(offset < btree_bkey_first_offset(t)); + return t; + } + + BUG(); +} + struct bset_tree *bch2_bkey_to_bset(struct btree *, struct bkey_packed *); struct bkey_packed *bch2_bkey_prev_filter(struct btree *, struct bset_tree *,