summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2022-03-30 13:47:07 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2022-04-02 16:02:56 -0400
commit2e5abacbe76d8db68155eaa2347b7cd390fdbe1d (patch)
tree9f26cb79704a2491bb630750f14b9c2bffb52a10
parentaa06b77da80be8fe96c0ff9386a0fdfb8bc32e0f (diff)
bcachefs: btree_path_make_mut() clears should_be_locked
This fixes a bug where __bch2_btree_node_update_key() wasn't clearing should_be_locked, leading to bch2_btree_path_traverse() always failing - all callers of btree_path_make_mut() want should_be_locked cleared, so do it there. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r--fs/bcachefs/btree_iter.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/bcachefs/btree_iter.c b/fs/bcachefs/btree_iter.c
index 9abf73b6b5b7..8c38b58050a5 100644
--- a/fs/bcachefs/btree_iter.c
+++ b/fs/bcachefs/btree_iter.c
@@ -1686,6 +1686,7 @@ bch2_btree_path_make_mut(struct btree_trans *trans,
btree_trans_verify_sorted(trans);
}
+ path->should_be_locked = false;
return path;
}
@@ -1705,8 +1706,7 @@ bch2_btree_path_set_pos(struct btree_trans *trans,
path = bch2_btree_path_make_mut(trans, path, intent, ip);
- path->pos = new_pos;
- path->should_be_locked = false;
+ path->pos = new_pos;
bch2_btree_path_check_sort(trans, path, cmp);