diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2022-03-06 20:56:08 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2022-05-30 18:17:12 -0400 |
commit | e83e0f5f0bb6b612195f4f44622c308ff381efaa (patch) | |
tree | cfb2d3267d73ece16169661a7ec45dcd0c2bdac1 /fs/bcachefs/btree_key_cache.c | |
parent | 6a10c7662ed9a875d3701116031890aff2d7f031 (diff) |
bcachefs: Lock ordering asserts for traverse_all()
This adds some new assertions that we always take locks in the correct
order while running under traverse_all() - we've been seeing some
livelocks and a bit of strange behaviour, this helps ensure that
everything is working the way we expect.
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 | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/bcachefs/btree_key_cache.c b/fs/bcachefs/btree_key_cache.c index ee89b650f6a4..b1b7a30417bc 100644 --- a/fs/bcachefs/btree_key_cache.c +++ b/fs/bcachefs/btree_key_cache.c @@ -309,7 +309,7 @@ retry: if (!ck) goto retry; - mark_btree_node_locked(path, 0, SIX_LOCK_intent); + mark_btree_node_locked(trans, path, 0, SIX_LOCK_intent); path->locks_want = 1; } else { enum six_lock_type lock_want = __btree_lock_want(path, 0); @@ -330,7 +330,7 @@ retry: goto retry; } - mark_btree_node_locked(path, 0, lock_want); + mark_btree_node_locked(trans, path, 0, lock_want); } path->l[0].lock_seq = ck->c.lock.state.seq; |