bcachefs: Fix a locking bug
authorKent Overstreet <kent.overstreet@gmail.com>
Mon, 30 Mar 2020 21:43:21 +0000 (17:43 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:38 +0000 (17:08 -0400)
Dropping the wrong kind of lock can't lead to anything good...

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_io.h

index fa996fdc547423952b747b83762e5b766ea5d25e..f3d7ec749b61870511d2641df3ecd01f5ef6a540 100644 (file)
@@ -114,7 +114,7 @@ static inline void btree_node_write_if_need(struct bch_fs *c, struct btree *b,
                        break;
                }
 
-               six_unlock_read(&b->c.lock);
+               six_unlock_type(&b->c.lock, lock_held);
                btree_node_wait_on_io(b);
                btree_node_lock_type(c, b, lock_held);
        }