aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/bcache/bset.h
diff options
context:
space:
mode:
authorKent Overstreet <kmo@daterainc.com>2013-11-11 20:35:24 -0500
committerKent Overstreet <kmo@daterainc.com>2014-01-08 16:05:13 -0500
commitc052dd9a26f60bcf70c0c3fcc08e07abb60295cd (patch)
tree9b6f0f270c546ef974bd0b091679a81e1ea295fc /drivers/md/bcache/bset.h
parentf67342dd342d5917d94a7c0ffbde5f78e0d7a57a (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.h19
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,
309struct btree_iter { 309struct 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
325void bch_btree_iter_push(struct btree_iter *, struct bkey *, struct bkey *); 325void bch_btree_iter_push(struct btree_iter *, struct bkey *, struct bkey *);
326struct bkey *bch_btree_iter_init(struct btree *, struct btree_iter *, 326struct bkey *bch_btree_iter_init(struct btree_keys *, struct btree_iter *,
327 struct bkey *); 327 struct bkey *);
328 328
329struct bkey *__bch_bset_search(struct btree *, struct bset_tree *, 329struct 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 */
335static inline struct bkey *bch_bset_search(struct btree *b, struct bset_tree *t, 335static 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
343struct bset_sort_state { 352struct bset_sort_state {