summaryrefslogtreecommitdiffstats
path: root/fs/bcachefs/eytzinger.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2019-01-21 15:32:13 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-22 17:08:14 -0400
commit7ef2a73a5881323d53453cc3be7261fe1a49af1d (patch)
tree85e8d67b00a6c28dd8691e79d1674c111e8a1328 /fs/bcachefs/eytzinger.h
parentdbaee468461bfa82e6453ca0e009e9661cc570da (diff)
downloadlinux-stable-7ef2a73a5881323d53453cc3be7261fe1a49af1d.tar.gz
linux-stable-7ef2a73a5881323d53453cc3be7261fe1a49af1d.tar.bz2
linux-stable-7ef2a73a5881323d53453cc3be7261fe1a49af1d.zip
bcachefs: Fix check for if extent update is allocating
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/eytzinger.h')
-rw-r--r--fs/bcachefs/eytzinger.h26
1 files changed, 14 insertions, 12 deletions
diff --git a/fs/bcachefs/eytzinger.h b/fs/bcachefs/eytzinger.h
index 7cb4942cacf7..26d5cad7e6a5 100644
--- a/fs/bcachefs/eytzinger.h
+++ b/fs/bcachefs/eytzinger.h
@@ -263,18 +263,20 @@ static inline ssize_t eytzinger0_find_le(void *base, size_t nr, size_t size,
}
}
-static inline size_t eytzinger0_find(void *base, size_t nr, size_t size,
- eytzinger_cmp_fn cmp, const void *search)
-{
- size_t i = 0;
- int res;
-
- while (i < nr &&
- (res = cmp(search, base + i * size, size)))
- i = eytzinger0_child(i, res > 0);
-
- return i;
-}
+#define eytzinger0_find(base, nr, size, _cmp, search) \
+({ \
+ void *_base = (base); \
+ void *_search = (search); \
+ size_t _nr = (nr); \
+ size_t _size = (size); \
+ size_t _i = 0; \
+ int _res; \
+ \
+ while (_i < _nr && \
+ (_res = _cmp(_search, _base + _i * _size, _size))) \
+ _i = eytzinger0_child(_i, _res > 0); \
+ _i; \
+})
void eytzinger0_sort(void *, size_t, size_t,
int (*cmp_func)(const void *, const void *, size_t),