Lines Matching refs:iter
55 struct btree_iter iter; in __bch_count_data() local
59 for_each_key(b, k, &iter) in __bch_count_data()
68 struct btree_iter iter; in __bch_check_keys() local
71 for_each_key(b, k, &iter) { in __bch_check_keys()
109 static void bch_btree_iter_next_check(struct btree_iter *iter) in bch_btree_iter_next_check() argument
111 struct bkey *k = iter->data->k, *next = bkey_next(k); in bch_btree_iter_next_check()
113 if (next < iter->data->end && in bch_btree_iter_next_check()
114 bkey_cmp(k, iter->b->ops->is_extents ? in bch_btree_iter_next_check()
116 bch_dump_bucket(iter->b); in bch_btree_iter_next_check()
123 static inline void bch_btree_iter_next_check(struct btree_iter *iter) {} in bch_btree_iter_next_check() argument
825 struct btree_iter iter; in bch_btree_insert_key() local
829 m = bch_btree_iter_init(b, &iter, b->ops->is_extents in bch_btree_insert_key()
833 if (b->ops->insert_fixup(b, k, &iter, replace_key)) in bch_btree_insert_key()
1027 static inline bool btree_iter_end(struct btree_iter *iter) in btree_iter_end() argument
1029 return !iter->used; in btree_iter_end()
1032 void bch_btree_iter_push(struct btree_iter *iter, struct bkey *k, in bch_btree_iter_push() argument
1036 BUG_ON(!heap_add(iter, in bch_btree_iter_push()
1042 struct btree_iter *iter, in __bch_btree_iter_init() argument
1047 iter->size = ARRAY_SIZE(iter->data); in __bch_btree_iter_init()
1048 iter->used = 0; in __bch_btree_iter_init()
1051 iter->b = b; in __bch_btree_iter_init()
1056 bch_btree_iter_push(iter, ret, bset_bkey_last(start->data)); in __bch_btree_iter_init()
1063 struct btree_iter *iter, in bch_btree_iter_init() argument
1066 return __bch_btree_iter_init(b, iter, search, b->set); in bch_btree_iter_init()
1070 static inline struct bkey *__bch_btree_iter_next(struct btree_iter *iter, in __bch_btree_iter_next() argument
1076 if (!btree_iter_end(iter)) { in __bch_btree_iter_next()
1077 bch_btree_iter_next_check(iter); in __bch_btree_iter_next()
1079 ret = iter->data->k; in __bch_btree_iter_next()
1080 iter->data->k = bkey_next(iter->data->k); in __bch_btree_iter_next()
1082 if (iter->data->k > iter->data->end) { in __bch_btree_iter_next()
1084 iter->data->k = iter->data->end; in __bch_btree_iter_next()
1087 if (iter->data->k == iter->data->end) in __bch_btree_iter_next()
1088 heap_pop(iter, unused, cmp); in __bch_btree_iter_next()
1090 heap_sift(iter, 0, cmp); in __bch_btree_iter_next()
1096 struct bkey *bch_btree_iter_next(struct btree_iter *iter) in bch_btree_iter_next() argument
1098 return __bch_btree_iter_next(iter, btree_iter_cmp); in bch_btree_iter_next()
1103 struct bkey *bch_btree_iter_next_filter(struct btree_iter *iter, in bch_btree_iter_next_filter() argument
1109 ret = bch_btree_iter_next(iter); in bch_btree_iter_next_filter()
1139 struct btree_iter *iter, in btree_mergesort() argument
1150 for (i = iter->used / 2 - 1; i >= 0; --i) in btree_mergesort()
1151 heap_sift(iter, i, b->ops->sort_cmp); in btree_mergesort()
1153 while (!btree_iter_end(iter)) { in btree_mergesort()
1155 k = b->ops->sort_fixup(iter, &tmp.k); in btree_mergesort()
1160 k = __bch_btree_iter_next(iter, b->ops->sort_cmp); in btree_mergesort()
1179 static void __btree_sort(struct btree_keys *b, struct btree_iter *iter, in __btree_sort() argument
1200 btree_mergesort(b, out, iter, fixup, false); in __btree_sort()
1235 struct btree_iter iter; in bch_btree_sort_partial() local
1238 __bch_btree_iter_init(b, &iter, NULL, &b->set[start]); in bch_btree_sort_partial()
1249 __btree_sort(b, &iter, start, order, false, state); in bch_btree_sort_partial()
1256 struct btree_iter *iter, in bch_btree_sort_and_fix_extents() argument
1259 __btree_sort(b, iter, 0, b->page_order, true, state); in bch_btree_sort_and_fix_extents()
1267 struct btree_iter iter; in bch_btree_sort_into() local
1268 bch_btree_iter_init(b, &iter, NULL); in bch_btree_sort_into()
1270 btree_mergesort(b, new->set->data, &iter, false, true); in bch_btree_sort_into()