X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=libbcachefs%2Fbackpointers.h;h=547e0617602ab21049571e171eca313ab968a65c;hb=44fc32e7ef89d794854409d98d3d1c3fe8fb3580;hp=87e31aa1975c26e910ee1c6c603669b77c86ff9d;hpb=a7b0ba44f04edfddb4db77e962094c061aa4be45;p=bcachefs-tools-debian diff --git a/libbcachefs/backpointers.h b/libbcachefs/backpointers.h index 87e31aa..547e061 100644 --- a/libbcachefs/backpointers.h +++ b/libbcachefs/backpointers.h @@ -54,7 +54,7 @@ static inline struct bpos bucket_pos_to_bp(const struct bch_fs *c, return ret; } -int bch2_bucket_backpointer_mod_nowritebuffer(struct btree_trans *, struct bpos, +int bch2_bucket_backpointer_mod_nowritebuffer(struct btree_trans *, struct bkey_i_backpointer *, struct bch_backpointer, struct bkey_s_c, bool); static inline int bch2_bucket_backpointer_mod(struct btree_trans *trans, @@ -67,9 +67,6 @@ static inline int bch2_bucket_backpointer_mod(struct btree_trans *trans, struct bkey_i_backpointer *bp_k; int ret; - if (unlikely(bch2_backpointers_no_use_write_buffer)) - return bch2_bucket_backpointer_mod_nowritebuffer(trans, bucket, bp, orig_k, insert); - bp_k = bch2_trans_kmalloc_nomemzero(trans, sizeof(struct bkey_i_backpointer)); ret = PTR_ERR_OR_ZERO(bp_k); if (ret) @@ -84,6 +81,9 @@ static inline int bch2_bucket_backpointer_mod(struct btree_trans *trans, set_bkey_val_u64s(&bp_k->k, 0); } + if (unlikely(bch2_backpointers_no_use_write_buffer)) + return bch2_bucket_backpointer_mod_nowritebuffer(trans, bp_k, bp, orig_k, insert); + return bch2_trans_update_buffered(trans, BTREE_ID_backpointers, &bp_k->k_i); }