diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2018-11-25 02:27:16 +0300 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-23 00:08:12 +0300 |
commit | eb8632657f79ee29941f4013b81cdd4aaeeca1a8 (patch) | |
tree | 060a18ecc6b08f8eac63c61c323998fbd2b1f492 | |
parent | f0cfb963ec0370b021bb21c899b5fdcd020014cf (diff) | |
download | linux-eb8632657f79ee29941f4013b81cdd4aaeeca1a8.tar.xz |
bcachefs: drop bogus percpu_ref_tryget
caller should already be guarding against rw, and checking here breaks
when caller needs to finish updates for going RO
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | fs/bcachefs/btree_update_interior.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/fs/bcachefs/btree_update_interior.c b/fs/bcachefs/btree_update_interior.c index 22f087098776..83a72cccb870 100644 --- a/fs/bcachefs/btree_update_interior.c +++ b/fs/bcachefs/btree_update_interior.c @@ -562,7 +562,6 @@ static void bch2_btree_update_free(struct btree_update *as) closure_debug_destroy(&as->cl); mempool_free(as, &c->btree_interior_update_pool); - percpu_ref_put(&c->writes); closure_wake_up(&c->btree_interior_update_wait); mutex_unlock(&c->btree_interior_update_lock); @@ -1012,14 +1011,9 @@ bch2_btree_update_start(struct bch_fs *c, enum btree_id id, struct btree_reserve *reserve; struct btree_update *as; - if (unlikely(!percpu_ref_tryget(&c->writes))) - return ERR_PTR(-EROFS); - reserve = bch2_btree_reserve_get(c, nr_nodes, flags, cl); - if (IS_ERR(reserve)) { - percpu_ref_put(&c->writes); + if (IS_ERR(reserve)) return ERR_CAST(reserve); - } as = mempool_alloc(&c->btree_interior_update_pool, GFP_NOIO); memset(as, 0, sizeof(*as)); |