From 3329cf1bb91d6293a96cf35ad72b2a2e1e1c0e3d Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Fri, 3 Mar 2023 00:03:01 -0500 Subject: bcachefs: Centralize btree node lock initialization This fixes some confusion in the lockdep code due to initializing btree node/key cache locks with the same lockdep key, but different names. Signed-off-by: Kent Overstreet --- fs/bcachefs/btree_io.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'fs/bcachefs/btree_io.c') diff --git a/fs/bcachefs/btree_io.c b/fs/bcachefs/btree_io.c index 7ffdce97214e..358a285c3bcf 100644 --- a/fs/bcachefs/btree_io.c +++ b/fs/bcachefs/btree_io.c @@ -33,6 +33,8 @@ void bch2_btree_node_io_unlock(struct btree *b) void bch2_btree_node_io_lock(struct btree *b) { + bch2_assert_btree_nodes_not_locked(); + wait_on_bit_lock_io(&b->flags, BTREE_NODE_write_in_flight, TASK_UNINTERRUPTIBLE); } @@ -51,12 +53,16 @@ void __bch2_btree_node_wait_on_write(struct btree *b) void bch2_btree_node_wait_on_read(struct btree *b) { + bch2_assert_btree_nodes_not_locked(); + wait_on_bit_io(&b->flags, BTREE_NODE_read_in_flight, TASK_UNINTERRUPTIBLE); } void bch2_btree_node_wait_on_write(struct btree *b) { + bch2_assert_btree_nodes_not_locked(); + wait_on_bit_io(&b->flags, BTREE_NODE_write_in_flight, TASK_UNINTERRUPTIBLE); } -- cgit v1.2.3