Lines Matching defs:iter

57 	struct btree_iter_stack iter;
61 for_each_key(b, k, &iter)
70 struct btree_iter_stack iter;
73 for_each_key(b, k, &iter) {
111 static void bch_btree_iter_next_check(struct btree_iter *iter)
113 struct bkey *k = iter->data->k, *next = bkey_next(k);
115 if (next < iter->data->end &&
116 bkey_cmp(k, iter->b->ops->is_extents ?
118 bch_dump_bucket(iter->b);
125 static inline void bch_btree_iter_next_check(struct btree_iter *iter) {}
882 struct btree_iter_stack iter;
898 m = bch_btree_iter_stack_init(b, &iter, preceding_key_p);
900 if (b->ops->insert_fixup(b, k, &iter.iter, replace_key))
1089 static inline bool btree_iter_end(struct btree_iter *iter)
1091 return !iter->used;
1094 void bch_btree_iter_push(struct btree_iter *iter, struct bkey *k,
1098 BUG_ON(!heap_add(iter,
1104 struct btree_iter_stack *iter,
1110 iter->iter.size = ARRAY_SIZE(iter->stack_data);
1111 iter->iter.used = 0;
1114 iter->iter.b = b;
1119 bch_btree_iter_push(&iter->iter, ret, bset_bkey_last(start->data));
1126 struct btree_iter_stack *iter,
1129 return __bch_btree_iter_stack_init(b, iter, search, b->set);
1132 static inline struct bkey *__bch_btree_iter_next(struct btree_iter *iter,
1138 if (!btree_iter_end(iter)) {
1139 bch_btree_iter_next_check(iter);
1141 ret = iter->data->k;
1142 iter->data->k = bkey_next(iter->data->k);
1144 if (iter->data->k > iter->data->end) {
1146 iter->data->k = iter->data->end;
1149 if (iter->data->k == iter->data->end)
1150 heap_pop(iter, b, cmp);
1152 heap_sift(iter, 0, cmp);
1158 struct bkey *bch_btree_iter_next(struct btree_iter *iter)
1160 return __bch_btree_iter_next(iter, btree_iter_cmp);
1164 struct bkey *bch_btree_iter_next_filter(struct btree_iter *iter,
1170 ret = bch_btree_iter_next(iter);
1195 struct btree_iter *iter,
1206 for (i = iter->used / 2 - 1; i >= 0; --i)
1207 heap_sift(iter, i, b->ops->sort_cmp);
1209 while (!btree_iter_end(iter)) {
1211 k = b->ops->sort_fixup(iter, &tmp.k);
1216 k = __bch_btree_iter_next(iter, b->ops->sort_cmp);
1235 static void __btree_sort(struct btree_keys *b, struct btree_iter *iter,
1256 btree_mergesort(b, out, iter, fixup, false);
1296 struct btree_iter_stack iter;
1299 __bch_btree_iter_stack_init(b, &iter, NULL, &b->set[start]);
1310 __btree_sort(b, &iter.iter, start, order, false, state);
1316 struct btree_iter *iter,
1319 __btree_sort(b, iter, 0, b->page_order, true, state);
1326 struct btree_iter_stack iter;
1328 bch_btree_iter_stack_init(b, &iter, NULL);
1330 btree_mergesort(b, new->set->data, &iter.iter, false, true);