diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2022-09-04 01:28:51 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2022-10-03 23:54:03 -0400 |
commit | f97a1938a3a1b25241489c0a4a751d1a8e033261 (patch) | |
tree | 164da99b88eab218c9bbfe304f3452b4702ad96c | |
parent | a9a91c060724548758cf381cf8a74b4751421c53 (diff) |
bcachefs: Fix redundant transaction restart
Little bit of tidying up, this makes the counters a little bit clearer
as to what's happening.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | fs/bcachefs/btree_locking.c | 7 | ||||
-rw-r--r-- | fs/bcachefs/btree_locking.h | 2 |
2 files changed, 3 insertions, 6 deletions
diff --git a/fs/bcachefs/btree_locking.c b/fs/bcachefs/btree_locking.c index 19e19192a08b..1cdf7d4f9cc7 100644 --- a/fs/bcachefs/btree_locking.c +++ b/fs/bcachefs/btree_locking.c @@ -402,14 +402,13 @@ int bch2_trans_relock(struct btree_trans *trans) struct btree_path *path; if (unlikely(trans->restarted)) - return -BCH_ERR_transaction_restart_relock; + return - ((int) trans->restarted); trans_for_each_path(trans, path) if (path->should_be_locked && - bch2_btree_path_relock(trans, path, _RET_IP_)) { + !bch2_btree_path_relock_norestart(trans, path, _RET_IP_)) { trace_and_count(trans->c, trans_restart_relock, trans, _RET_IP_, path); - BUG_ON(!trans->restarted); - return -BCH_ERR_transaction_restart_relock; + return btree_trans_restart(trans, BCH_ERR_transaction_restart_relock); } return 0; } diff --git a/fs/bcachefs/btree_locking.h b/fs/bcachefs/btree_locking.h index 3bc3301b7b1b..3bc490bc5120 100644 --- a/fs/bcachefs/btree_locking.h +++ b/fs/bcachefs/btree_locking.h @@ -339,8 +339,6 @@ static inline int bch2_btree_path_relock(struct btree_trans *trans, return 0; } -int bch2_btree_path_relock(struct btree_trans *, struct btree_path *, unsigned long); - /* upgrade */ bool bch2_btree_path_upgrade_noupgrade_sibs(struct btree_trans *, |