]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/bkey_sort.c
Update bcachefs sources to 2115a2ffde bcachefs: Kill bch2_verify_bucket_evacuated()
[bcachefs-tools-debian] / libbcachefs / bkey_sort.c
index b1385a77da1146f6efd643d389a73aa999745244..cdef41db76925c235e218974e0dba760da61e55c 100644 (file)
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 #include "bcachefs.h"
 #include "bkey_buf.h"
+#include "bkey_cmp.h"
 #include "bkey_sort.h"
 #include "bset.h"
 #include "extents.h"
@@ -45,7 +46,7 @@ static inline void sort_iter_advance(struct sort_iter *iter, sort_cmp_fn cmp)
 
        BUG_ON(!iter->used);
 
-       i->k = bkey_next(i->k);
+       i->k = bkey_p_next(i->k);
 
        BUG_ON(i->k > i->end);
 
@@ -107,7 +108,7 @@ bch2_key_sort_fix_overlapping(struct bch_fs *c, struct bset *dst,
                    !should_drop_next_key(iter)) {
                        bkey_copy(out, k);
                        btree_keys_account_key_add(&nr, 0, out);
-                       out = bkey_next(out);
+                       out = bkey_p_next(out);
                }
 
                sort_iter_advance(iter, key_sort_fix_overlapping_cmp);
@@ -143,8 +144,10 @@ bch2_sort_repack(struct bset *dst, struct btree *src,
                else
                        bch2_bkey_unpack(src, (void *) out, in);
 
+               out->needs_whiteout = false;
+
                btree_keys_account_key_add(&nr, 0, out);
-               out = bkey_next(out);
+               out = bkey_p_next(out);
        }
 
        dst->u64s = cpu_to_le16((u64 *) out - dst->_data);
@@ -155,7 +158,7 @@ static inline int sort_keys_cmp(struct btree *b,
                                struct bkey_packed *l,
                                struct bkey_packed *r)
 {
-       return bch2_bkey_cmp_packed(b, l, r) ?:
+       return bch2_bkey_cmp_packed_inlined(b, l, r) ?:
                (int) bkey_deleted(r) - (int) bkey_deleted(l) ?:
                (int) l->needs_whiteout - (int) r->needs_whiteout;
 }
@@ -177,7 +180,7 @@ unsigned bch2_sort_keys(struct bkey_packed *dst,
                        continue;
 
                while ((next = sort_iter_peek(iter)) &&
-                      !bch2_bkey_cmp_packed(iter->b, in, next)) {
+                      !bch2_bkey_cmp_packed_inlined(iter->b, in, next)) {
                        BUG_ON(in->needs_whiteout &&
                               next->needs_whiteout);
                        needs_whiteout |= in->needs_whiteout;
@@ -191,7 +194,7 @@ unsigned bch2_sort_keys(struct bkey_packed *dst,
                        bkey_copy(out, in);
                }
                out->needs_whiteout |= needs_whiteout;
-               out = bkey_next(out);
+               out = bkey_p_next(out);
        }
 
        return (u64 *) out - (u64 *) dst;