]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/extent_update.c
fix(libbcachefs/ioctl): `dirfd` should be a signed 32 bits integer
[bcachefs-tools-debian] / libbcachefs / extent_update.c
index 2fd5d9672a44287b42a10acfcdc81c5865830c07..b9033bb4f11cf3dc6a98b62604a35ed5b211b93e 100644 (file)
@@ -73,8 +73,7 @@ static int count_iters_for_insert(struct btree_trans *trans,
                for_each_btree_key_norestart(trans, iter,
                                   BTREE_ID_reflink, POS(0, idx + offset),
                                   BTREE_ITER_SLOTS, r_k, ret2) {
-                       if (bkey_cmp(bkey_start_pos(r_k.k),
-                                    POS(0, idx + sectors)) >= 0)
+                       if (bkey_ge(bkey_start_pos(r_k.k), POS(0, idx + sectors)))
                                break;
 
                        /* extent_update_to_keys(), for the reflink_v update */
@@ -101,7 +100,7 @@ static int count_iters_for_insert(struct btree_trans *trans,
        return ret2 ?: ret;
 }
 
-#define EXTENT_ITERS_MAX       (BTREE_ITER_MAX / 3)
+#define EXTENT_ITERS_MAX       (BTREE_ITER_INITIAL / 3)
 
 int bch2_extent_atomic_end(struct btree_trans *trans,
                           struct btree_iter *iter,
@@ -129,14 +128,10 @@ int bch2_extent_atomic_end(struct btree_trans *trans,
 
        bch2_trans_copy_iter(&copy, iter);
 
-       for_each_btree_key_continue_norestart(copy, 0, k, ret) {
+       for_each_btree_key_upto_continue_norestart(copy, insert->k.p, 0, k, ret) {
                unsigned offset = 0;
 
-               if (bkey_cmp(bkey_start_pos(k.k), *end) >= 0)
-                       break;
-
-               if (bkey_cmp(bkey_start_pos(&insert->k),
-                            bkey_start_pos(k.k)) > 0)
+               if (bkey_gt(bkey_start_pos(&insert->k), bkey_start_pos(k.k)))
                        offset = bkey_start_offset(&insert->k) -
                                bkey_start_offset(k.k);