diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2021-08-30 14:22:43 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2022-05-30 18:16:41 -0400 |
commit | 376305dd6b88d4f404e833c9e2e7593a726e40ed (patch) | |
tree | 435f24f181fb3f9bc2b5d514edb5ed7d7b25d4c9 /fs/bcachefs/btree_key_cache.c | |
parent | 1b1c96e093ad414049760560e1e48dc6311b5258 (diff) |
bcachefs: Further reduce iter->trans usage
This is prep work for splitting btree_path out from btree_iter -
btree_path will not have a pointer to btree_trans.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'fs/bcachefs/btree_key_cache.c')
-rw-r--r-- | fs/bcachefs/btree_key_cache.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/fs/bcachefs/btree_key_cache.c b/fs/bcachefs/btree_key_cache.c index 6bc20813d00d..568c1f2704c2 100644 --- a/fs/bcachefs/btree_key_cache.c +++ b/fs/bcachefs/btree_key_cache.c @@ -212,7 +212,7 @@ static int btree_key_cache_fill(struct btree_trans *trans, if (ret) goto err; - if (!bch2_btree_node_relock(ck_iter, 0)) { + if (!bch2_btree_node_relock(trans, ck_iter, 0)) { trace_transaction_restart_ip(trans->ip, _THIS_IP_); ret = btree_trans_restart(trans); goto err; @@ -265,9 +265,8 @@ static int bkey_cached_check_fn(struct six_lock *lock, void *p) } __flatten -int bch2_btree_iter_traverse_cached(struct btree_iter *iter) +int bch2_btree_iter_traverse_cached(struct btree_trans *trans, struct btree_iter *iter) { - struct btree_trans *trans = iter->trans; struct bch_fs *c = trans->c; struct bkey_cached *ck; int ret = 0; @@ -276,7 +275,7 @@ int bch2_btree_iter_traverse_cached(struct btree_iter *iter) iter->l[1].b = NULL; - if (bch2_btree_node_relock(iter, 0)) { + if (bch2_btree_node_relock(trans, iter, 0)) { ck = (void *) iter->l[0].b; goto fill; } @@ -301,7 +300,7 @@ retry: } else { enum six_lock_type lock_want = __btree_lock_want(iter, 0); - if (!btree_node_lock((void *) ck, iter->pos, 0, iter, lock_want, + if (!btree_node_lock(trans, iter, (void *) ck, iter->pos, 0, lock_want, bkey_cached_check_fn, iter, _THIS_IP_)) { if (!trans->restarted) goto retry; @@ -325,7 +324,7 @@ retry: fill: if (!ck->valid && !(iter->flags & BTREE_ITER_CACHED_NOFILL)) { if (!iter->locks_want && - !!__bch2_btree_iter_upgrade(iter, 1)) { + !!__bch2_btree_iter_upgrade(trans, iter, 1)) { trace_transaction_restart_ip(trans->ip, _THIS_IP_); BUG_ON(!trans->restarted); ret = -EINTR; @@ -343,7 +342,7 @@ fill: iter->uptodate = BTREE_ITER_NEED_PEEK; if ((iter->flags & BTREE_ITER_INTENT) && - !bch2_btree_iter_upgrade(iter, 1)) { + !bch2_btree_iter_upgrade(trans, iter, 1)) { BUG_ON(!trans->restarted); ret = -EINTR; } |