diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2019-01-23 15:49:44 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2019-01-23 15:53:32 -0500 |
commit | 35fca2f044d375b1590f499cfd34bef38ca0f8f1 (patch) | |
tree | c3906079fe4de190de30690bd2725e4bb0a28b0a /libbcachefs/eytzinger.h | |
parent | 1c50d258e3462cd0e0f76570685092910fc11873 (diff) |
Update bcachefs sources to 99750eab4d bcachefs: Persist stripe blocks_used
Diffstat (limited to 'libbcachefs/eytzinger.h')
-rw-r--r-- | libbcachefs/eytzinger.h | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/libbcachefs/eytzinger.h b/libbcachefs/eytzinger.h index 66fa227c..d19d809c 100644 --- a/libbcachefs/eytzinger.h +++ b/libbcachefs/eytzinger.h @@ -262,18 +262,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), |