From a9d79c6e8ba18665bed30702be5fb238c50e8c63 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Tue, 23 Mar 2021 23:52:27 -0400 Subject: bcachefs: Use pcpu mode of six locks for interior nodes Signed-off-by: Kent Overstreet Signed-off-by: Kent Overstreet --- fs/bcachefs/btree_cache.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'fs/bcachefs/btree_cache.c') diff --git a/fs/bcachefs/btree_cache.c b/fs/bcachefs/btree_cache.c index 775b3e8468da..f32fc45c85d2 100644 --- a/fs/bcachefs/btree_cache.c +++ b/fs/bcachefs/btree_cache.c @@ -147,6 +147,11 @@ int bch2_btree_node_hash_insert(struct btree_cache *bc, struct btree *b, b->c.level = level; b->c.btree_id = id; + if (level) + six_lock_pcpu_alloc(&b->c.lock); + else + six_lock_pcpu_free_rcu(&b->c.lock); + mutex_lock(&bc->lock); ret = __bch2_btree_node_hash_insert(bc, b); if (!ret) @@ -393,6 +398,7 @@ void bch2_fs_btree_cache_exit(struct bch_fs *c) while (!list_empty(&bc->freed)) { b = list_first_entry(&bc->freed, struct btree, list); list_del(&b->list); + six_lock_pcpu_free(&b->c.lock); kfree(b); } -- cgit v1.2.3