aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/bcache/bset.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md/bcache/bset.h')
-rw-r--r--drivers/md/bcache/bset.h38
1 files changed, 29 insertions, 9 deletions
diff --git a/drivers/md/bcache/bset.h b/drivers/md/bcache/bset.h
index 91bcbdb04085..4f60c21c7a38 100644
--- a/drivers/md/bcache/bset.h
+++ b/drivers/md/bcache/bset.h
@@ -3,6 +3,8 @@
3 3
4#include <linux/slab.h> 4#include <linux/slab.h>
5 5
6#include "util.h" /* for time_stats */
7
6/* 8/*
7 * BKEYS: 9 * BKEYS:
8 * 10 *
@@ -190,6 +192,33 @@ struct bset_tree {
190 struct bset *data; 192 struct bset *data;
191}; 193};
192 194
195/* Sorting */
196
197struct bset_sort_state {
198 mempool_t *pool;
199
200 unsigned page_order;
201 unsigned crit_factor;
202
203 struct time_stats time;
204};
205
206void bch_bset_sort_state_free(struct bset_sort_state *);
207int bch_bset_sort_state_init(struct bset_sort_state *, unsigned);
208void bch_btree_sort_lazy(struct btree *, struct bset_sort_state *);
209void bch_btree_sort_into(struct btree *, struct btree *,
210 struct bset_sort_state *);
211void bch_btree_sort_and_fix_extents(struct btree *, struct btree_iter *,
212 struct bset_sort_state *);
213void bch_btree_sort_partial(struct btree *, unsigned,
214 struct bset_sort_state *);
215
216static inline void bch_btree_sort(struct btree *b,
217 struct bset_sort_state *state)
218{
219 bch_btree_sort_partial(b, 0, state);
220}
221
193/* Keylists */ 222/* Keylists */
194 223
195struct keylist { 224struct keylist {
@@ -374,15 +403,6 @@ static inline struct bkey *bch_bset_search(struct btree *b, struct bset_tree *t,
374}) 403})
375 404
376bool bch_bkey_try_merge(struct btree *, struct bkey *, struct bkey *); 405bool bch_bkey_try_merge(struct btree *, struct bkey *, struct bkey *);
377void bch_btree_sort_lazy(struct btree *);
378void bch_btree_sort_into(struct btree *, struct btree *);
379void bch_btree_sort_and_fix_extents(struct btree *, struct btree_iter *);
380void bch_btree_sort_partial(struct btree *, unsigned);
381
382static inline void bch_btree_sort(struct btree *b)
383{
384 bch_btree_sort_partial(b, 0);
385}
386 406
387int bch_bset_print_stats(struct cache_set *, char *); 407int bch_bset_print_stats(struct cache_set *, char *);
388 408