bkey_reassemble(update, k);
if (bch2_bkey_merge(c, bkey_i_to_s(update), bkey_i_to_s_c(*insert))) {
- struct btree_iter update_iter;
-
- bch2_trans_copy_iter(&update_iter, iter);
- ret = bch2_btree_delete_at(trans, &update_iter, flags);
- bch2_trans_iter_exit(trans, &update_iter);
-
+ ret = bch2_btree_delete_at(trans, iter, flags);
if (ret)
return ret;
}
if (bkey_cmp(k.k->p, insert->k.p) <= 0) {
- bch2_trans_copy_iter(&update_iter, &iter);
- ret = bch2_btree_delete_at(trans, &update_iter, flags);
- bch2_trans_iter_exit(trans, &update_iter);
-
+ ret = bch2_btree_delete_at(trans, &iter, flags);
if (ret)
goto err;
}
bkey_reassemble(update, k);
bch2_cut_front(insert->k.p, update);
- bch2_trans_copy_iter(&update_iter, &iter);
- bch2_trans_update(trans, &update_iter, update, flags);
- bch2_trans_iter_exit(trans, &update_iter);
+ ret = bch2_trans_update(trans, &iter, update, flags);
+ if (ret)
+ goto err;
+
goto out;
}
next:
int ret;
bch2_trans_iter_init(trans, &iter, id, bkey_start_pos(&k->k),
- BTREE_ITER_INTENT);
-
+ BTREE_ITER_INTENT);
ret = bch2_btree_iter_traverse(&iter) ?:
bch2_trans_update(trans, &iter, k, 0);
bch2_trans_iter_exit(trans, &iter);