summaryrefslogtreecommitdiff
path: root/fs/bcachefs/btree_trans_commit.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-11-02 19:37:15 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-12-21 23:46:55 -0500
commit3bae2f7a776644d9b8a40b930bb7988c449d87fa (patch)
tree4a7e716976341358537a3a51bdeac38632e3afc5 /fs/bcachefs/btree_trans_commit.c
parent451d953b1a10b2fbf8021863b53703f431542307 (diff)
bcachefs: Clean up btree write buffer write ref handling
__bch2_btree_write_buffer_flush() now assumes a write ref is already held (as called by the transaction commit path); and the wrappers bch2_write_buffer_flush() and flush_sync() take an explicit write ref. This means internally the write buffer code can always use BTREE_INSERT_NOCHECK_RW, instead of in the previous code passing flags around and hoping the NOCHECK_RW flag was always carried around correctly. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/btree_trans_commit.c')
-rw-r--r--fs/bcachefs/btree_trans_commit.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/bcachefs/btree_trans_commit.c b/fs/bcachefs/btree_trans_commit.c
index 578521216b6a..a2d0494b58f4 100644
--- a/fs/bcachefs/btree_trans_commit.c
+++ b/fs/bcachefs/btree_trans_commit.c
@@ -961,8 +961,7 @@ int bch2_trans_commit_error(struct btree_trans *trans, unsigned flags,
if (wb->state.nr > wb->size * 3 / 4) {
bch2_trans_begin(trans);
- ret = __bch2_btree_write_buffer_flush(trans,
- flags|BCH_TRANS_COMMIT_no_check_rw, true);
+ ret = __bch2_btree_write_buffer_flush(trans, true);
if (!ret) {
trace_and_count(c, trans_restart_write_buffer_flush, trans, _THIS_IP_);
ret = btree_trans_restart(trans, BCH_ERR_transaction_restart_write_buffer_flush);
@@ -1077,8 +1076,7 @@ int __bch2_trans_commit(struct btree_trans *trans, unsigned flags)
bch2_trans_begin(trans);
bch2_trans_unlock(trans);
- ret = __bch2_btree_write_buffer_flush(trans,
- flags|BCH_TRANS_COMMIT_no_check_rw, true);
+ ret = __bch2_btree_write_buffer_flush(trans, true);
if (!ret) {
trace_and_count(c, trans_restart_write_buffer_flush, trans, _THIS_IP_);
ret = btree_trans_restart(trans, BCH_ERR_transaction_restart_write_buffer_flush);