diff options
author | Kent Overstreet <kmo@daterainc.com> | 2013-11-11 20:35:24 -0500 |
---|---|---|
committer | Kent Overstreet <kmo@daterainc.com> | 2014-01-08 16:05:13 -0500 |
commit | c052dd9a26f60bcf70c0c3fcc08e07abb60295cd (patch) | |
tree | 9b6f0f270c546ef974bd0b091679a81e1ea295fc /drivers/md/bcache/bset.h | |
parent | f67342dd342d5917d94a7c0ffbde5f78e0d7a57a (diff) |
bcache: Convert btree_iter to struct btree_keys
More work to disentangle bset.c from struct btree
Signed-off-by: Kent Overstreet <kmo@daterainc.com>
Diffstat (limited to 'drivers/md/bcache/bset.h')
-rw-r--r-- | drivers/md/bcache/bset.h | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/md/bcache/bset.h b/drivers/md/bcache/bset.h index 49135695342e..563130c28142 100644 --- a/drivers/md/bcache/bset.h +++ b/drivers/md/bcache/bset.h | |||
@@ -309,7 +309,7 @@ static inline bool bch_bkey_try_merge(struct btree_keys *b, | |||
309 | struct btree_iter { | 309 | struct btree_iter { |
310 | size_t size, used; | 310 | size_t size, used; |
311 | #ifdef CONFIG_BCACHE_DEBUG | 311 | #ifdef CONFIG_BCACHE_DEBUG |
312 | struct btree *b; | 312 | struct btree_keys *b; |
313 | #endif | 313 | #endif |
314 | struct btree_iter_set { | 314 | struct btree_iter_set { |
315 | struct bkey *k, *end; | 315 | struct bkey *k, *end; |
@@ -323,21 +323,30 @@ struct bkey *bch_btree_iter_next_filter(struct btree_iter *, | |||
323 | struct btree_keys *, ptr_filter_fn); | 323 | struct btree_keys *, ptr_filter_fn); |
324 | 324 | ||
325 | void bch_btree_iter_push(struct btree_iter *, struct bkey *, struct bkey *); | 325 | void bch_btree_iter_push(struct btree_iter *, struct bkey *, struct bkey *); |
326 | struct bkey *bch_btree_iter_init(struct btree *, struct btree_iter *, | 326 | struct bkey *bch_btree_iter_init(struct btree_keys *, struct btree_iter *, |
327 | struct bkey *); | 327 | struct bkey *); |
328 | 328 | ||
329 | struct bkey *__bch_bset_search(struct btree *, struct bset_tree *, | 329 | struct bkey *__bch_bset_search(struct btree_keys *, struct bset_tree *, |
330 | const struct bkey *); | 330 | const struct bkey *); |
331 | 331 | ||
332 | /* | 332 | /* |
333 | * Returns the first key that is strictly greater than search | 333 | * Returns the first key that is strictly greater than search |
334 | */ | 334 | */ |
335 | static inline struct bkey *bch_bset_search(struct btree *b, struct bset_tree *t, | 335 | static inline struct bkey *bch_bset_search(struct btree_keys *b, |
336 | struct bset_tree *t, | ||
336 | const struct bkey *search) | 337 | const struct bkey *search) |
337 | { | 338 | { |
338 | return search ? __bch_bset_search(b, t, search) : t->data->start; | 339 | return search ? __bch_bset_search(b, t, search) : t->data->start; |
339 | } | 340 | } |
340 | 341 | ||
342 | #define for_each_key_filter(b, k, iter, filter) \ | ||
343 | for (bch_btree_iter_init((b), (iter), NULL); \ | ||
344 | ((k) = bch_btree_iter_next_filter((iter), (b), filter));) | ||
345 | |||
346 | #define for_each_key(b, k, iter) \ | ||
347 | for (bch_btree_iter_init((b), (iter), NULL); \ | ||
348 | ((k) = bch_btree_iter_next(iter));) | ||
349 | |||
341 | /* Sorting */ | 350 | /* Sorting */ |
342 | 351 | ||
343 | struct bset_sort_state { | 352 | struct bset_sort_state { |