summaryrefslogtreecommitdiff
path: root/fs/bcachefs/btree_key_cache.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-07-20 20:14:44 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2022-05-30 18:16:37 -0400
commit8bdf555b147c858762de18e7a68f7cde00fbdf7c (patch)
treea35b85458a637fcc42b7c03538dd47cb6dfcbbea /fs/bcachefs/btree_key_cache.c
parenta7ee18ebddcb7e747dcfecf3e44422b53e53307d (diff)
bcachefs: Don't downgrade in traverse()
Downgrading of btree iterators is something that should only happen explicitly. 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.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/fs/bcachefs/btree_key_cache.c b/fs/bcachefs/btree_key_cache.c
index 6a2984e97b1f..b9e304a3267d 100644
--- a/fs/bcachefs/btree_key_cache.c
+++ b/fs/bcachefs/btree_key_cache.c
@@ -340,12 +340,10 @@ fill:
iter->uptodate = BTREE_ITER_NEED_PEEK;
- if (!(iter->flags & BTREE_ITER_INTENT))
- bch2_btree_iter_downgrade(iter);
- else if (!iter->locks_want) {
- if (!__bch2_btree_iter_upgrade(iter, 1))
- ret = -EINTR;
- }
+ if ((iter->flags & BTREE_ITER_INTENT) &&
+ !iter->locks_want &&
+ __bch2_btree_iter_upgrade(iter, 1))
+ ret = -EINTR;
return ret;
err: