summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2022-09-24 00:14:38 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2022-10-03 23:54:34 -0400
commitac4f9d6d2a926f34a4ae3aa4d39d5e9bb51d6f9d (patch)
tree472bdc508c347c5bcbc21fd71575c15d64b0680a
parente1e9d7a1a81d7e464bf79878412450b77d2690c5 (diff)
bcachefs: Use lockdep_set_no_check_recursion()
bcachefs has a cycle detector for deadlock avoidance, and thus lockdep should not be checking for self deadlock on btree node locks - but we do still want it for checking lock ordering w.r.t. other lock types. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r--fs/bcachefs/btree_cache.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/bcachefs/btree_cache.c b/fs/bcachefs/btree_cache.c
index d4687a10a0fc..44d8d7a46acc 100644
--- a/fs/bcachefs/btree_cache.c
+++ b/fs/bcachefs/btree_cache.c
@@ -118,6 +118,9 @@ static struct btree *__btree_node_mem_alloc(struct bch_fs *c)
bkey_btree_ptr_init(&b->key);
__six_lock_init(&b->c.lock, "b->c.lock", &bch2_btree_node_lock_key);
+#ifdef CONFIG_DEBUG_LOCK_ALLOC
+ lockdep_set_no_check_recursion(&b->c.lock.dep_map);
+#endif
INIT_LIST_HEAD(&b->list);
INIT_LIST_HEAD(&b->write_blocked);
b->byte_order = ilog2(btree_bytes(c));