summaryrefslogtreecommitdiff
path: root/libbcachefs/eytzinger.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-06-17 11:31:26 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2024-06-17 12:38:43 -0400
commitfc06a0ea5e552663e9e47de941fbc7e621d4ca46 (patch)
tree7760020d71afe32d3317049ad6f1b493dabe245c /libbcachefs/eytzinger.h
parentab83e348fb77f91b3a9c09ab87c9c357bdafb1d7 (diff)
Update bcachefs sources to c56e1ec97dfd bcachefs: Fix bch2_sb_downgrade_update()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'libbcachefs/eytzinger.h')
-rw-r--r--libbcachefs/eytzinger.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/libbcachefs/eytzinger.h b/libbcachefs/eytzinger.h
index 24840aee..c6e078f2 100644
--- a/libbcachefs/eytzinger.h
+++ b/libbcachefs/eytzinger.h
@@ -284,6 +284,17 @@ static inline int eytzinger0_find_gt(void *base, size_t nr, size_t size,
return eytzinger0_next(idx, nr);
}
+static inline int eytzinger0_find_ge(void *base, size_t nr, size_t size,
+ cmp_func_t cmp, const void *search)
+{
+ ssize_t idx = eytzinger0_find_le(base, nr, size, cmp, search);
+
+ if (idx < nr && !cmp(base + idx * size, search))
+ return idx;
+
+ return eytzinger0_next(idx, nr);
+}
+
#define eytzinger0_find(base, nr, size, _cmp, search) \
({ \
void *_base = (base); \