Lines Matching +full:compare +full:- +full:and +full:- +full:swap

1 // SPDX-License-Identifier: GPL-2.0
15 return !iter->used; in sort_iter_end()
24 i + 1 < iter->used && in sort_iter_sift()
25 cmp(iter->b, iter->data[i].k, iter->data[i + 1].k) > 0; in sort_iter_sift()
27 swap(iter->data[i], iter->data[i + 1]); in sort_iter_sift()
32 unsigned i = iter->used; in sort_iter_sort()
34 while (i--) in sort_iter_sort()
40 return !sort_iter_end(iter) ? iter->data->k : NULL; in sort_iter_peek()
45 struct sort_iter_set *i = iter->data; in sort_iter_advance()
47 BUG_ON(!iter->used); in sort_iter_advance()
49 i->k = bkey_p_next(i->k); in sort_iter_advance()
51 BUG_ON(i->k > i->end); in sort_iter_advance()
53 if (i->k == i->end) in sort_iter_advance()
54 array_remove_item(iter->data, iter->used, 0); in sort_iter_advance()
71 * If keys compare equal, compare by pointer order:
84 * key_sort_cmp() ensures that when keys compare equal the older key in should_drop_next_key()
85 * comes first; so if l->k compares equal to r->k then l->k is older in should_drop_next_key()
86 * and should be dropped. in should_drop_next_key()
88 return iter->used >= 2 && in should_drop_next_key()
89 !bch2_bkey_cmp_packed(iter->b, in should_drop_next_key()
90 iter->data[0].k, in should_drop_next_key()
91 iter->data[1].k); in should_drop_next_key()
98 struct bkey_packed *out = dst->start; in bch2_key_sort_fix_overlapping()
117 dst->u64s = cpu_to_le16((u64 *) out - dst->_data); in bch2_key_sort_fix_overlapping()
128 struct bkey_format *in_f = &src->format; in bch2_sort_repack()
131 bool transform = memcmp(out_f, &src->format, sizeof(*out_f)); in bch2_sort_repack()
143 out->format = KEY_FORMAT_LOCAL_BTREE; in bch2_sort_repack()
147 out->needs_whiteout = false; in bch2_sort_repack()
153 dst->u64s = cpu_to_le16((u64 *) out - dst->_data); in bch2_sort_repack()
162 (int) bkey_deleted(r) - (int) bkey_deleted(l) ?: in keep_unwritten_whiteouts_cmp()
163 (long) l - (long) r; in keep_unwritten_whiteouts_cmp()
180 if (bkey_deleted(in) && in < unwritten_whiteouts_start(iter->b)) in bch2_sort_keys_keep_unwritten_whiteouts()
184 !bch2_bkey_cmp_packed_inlined(iter->b, in, next)) in bch2_sort_keys_keep_unwritten_whiteouts()
191 return (u64 *) out - (u64 *) dst; in bch2_sort_keys_keep_unwritten_whiteouts()
213 return (u64 *) out - (u64 *) dst; in bch2_sort_keys()