diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2022-11-29 01:15:08 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2022-11-29 01:15:08 -0500 |
commit | 5a5a6c25a93e83e0b1e659d7808e7636d0b770ed (patch) | |
tree | f581cc6bec7c1f33d6bfeb48be9807f1b63a8e3a /libbcachefs/btree_update_leaf.c | |
parent | 934a84dfaf719af82dadbbe0e2480baff03c905b (diff) |
Update bcachefs sources to 8a65cc4951 bcachefs: Improve bch2_dev_freespace_init()
Diffstat (limited to 'libbcachefs/btree_update_leaf.c')
-rw-r--r-- | libbcachefs/btree_update_leaf.c | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/libbcachefs/btree_update_leaf.c b/libbcachefs/btree_update_leaf.c index aa8b205a..cd23d7df 100644 --- a/libbcachefs/btree_update_leaf.c +++ b/libbcachefs/btree_update_leaf.c @@ -1199,12 +1199,10 @@ int bch2_trans_update_extent(struct btree_trans *trans, if (ret) goto nomerge1; - update = bch2_trans_kmalloc(trans, bkey_bytes(k.k)); + update = bch2_bkey_make_mut(trans, k); if ((ret = PTR_ERR_OR_ZERO(update))) goto err; - bkey_reassemble(update, k); - if (bch2_bkey_merge(c, bkey_i_to_s(update), bkey_i_to_s_c(insert))) { ret = bch2_btree_delete_at(trans, &iter, flags); if (ret) @@ -1234,12 +1232,10 @@ nomerge1: trans->extra_journal_res += compressed_sectors; if (front_split) { - update = bch2_trans_kmalloc(trans, bkey_bytes(k.k)); + update = bch2_bkey_make_mut(trans, k); if ((ret = PTR_ERR_OR_ZERO(update))) goto err; - bkey_reassemble(update, k); - bch2_cut_back(start, update); bch2_trans_iter_init(trans, &update_iter, btree_id, update->k.p, @@ -1258,12 +1254,10 @@ nomerge1: if (k.k->p.snapshot != insert->k.p.snapshot && (front_split || back_split)) { - update = bch2_trans_kmalloc(trans, bkey_bytes(k.k)); + update = bch2_bkey_make_mut(trans, k); if ((ret = PTR_ERR_OR_ZERO(update))) goto err; - bkey_reassemble(update, k); - bch2_cut_front(start, update); bch2_cut_back(insert->k.p, update); @@ -1307,11 +1301,10 @@ nomerge1: } if (back_split) { - update = bch2_trans_kmalloc(trans, bkey_bytes(k.k)); + update = bch2_bkey_make_mut(trans, k); if ((ret = PTR_ERR_OR_ZERO(update))) goto err; - bkey_reassemble(update, k); bch2_cut_front(insert->k.p, update); ret = bch2_trans_update_by_path(trans, iter.path, update, @@ -1652,7 +1645,7 @@ int bch2_btree_delete_range_trans(struct btree_trans *trans, enum btree_id id, int ret = 0; bch2_trans_iter_init(trans, &iter, id, start, BTREE_ITER_INTENT); - while ((k = bch2_btree_iter_peek(&iter)).k) { + while ((k = bch2_btree_iter_peek_upto(&iter, end)).k) { struct disk_reservation disk_res = bch2_disk_reservation_init(trans->c, 0); struct bkey_i delete; @@ -1661,9 +1654,6 @@ int bch2_btree_delete_range_trans(struct btree_trans *trans, enum btree_id id, if (ret) goto err; - if (bkey_ge(iter.pos, end)) - break; - bkey_init(&delete.k); /* |