]> www.infradead.org Git - users/hch/misc.git/commitdiff
block: replace call_rcu by kfree_rcu for simple kmem_cache_free callback
authorJulia Lawall <Julia.Lawall@inria.fr>
Sun, 13 Oct 2024 20:16:56 +0000 (22:16 +0200)
committerJens Axboe <axboe@kernel.dk>
Tue, 22 Oct 2024 14:16:40 +0000 (08:16 -0600)
Since SLOB was removed and since
commit 6c6c47b063b5 ("mm, slab: call kvfree_rcu_barrier() from kmem_cache_destroy()"),
it is not necessary to use call_rcu when the callback only performs
kmem_cache_free. Use kfree_rcu() directly.

The changes were made using Coccinelle.

Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr>
Link: https://lore.kernel.org/r/20241013201704.49576-10-Julia.Lawall@inria.fr
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-ioc.c

index 25dd4db11121bf5490fb0be64dc9681a6983af29..ce82770c72abad3f64db13cfb9ac8d222ee88389 100644 (file)
@@ -32,13 +32,6 @@ static void get_io_context(struct io_context *ioc)
        atomic_long_inc(&ioc->refcount);
 }
 
-static void icq_free_icq_rcu(struct rcu_head *head)
-{
-       struct io_cq *icq = container_of(head, struct io_cq, __rcu_head);
-
-       kmem_cache_free(icq->__rcu_icq_cache, icq);
-}
-
 /*
  * Exit an icq. Called with ioc locked for blk-mq, and with both ioc
  * and queue locked for legacy.
@@ -102,7 +95,7 @@ static void ioc_destroy_icq(struct io_cq *icq)
         */
        icq->__rcu_icq_cache = et->icq_cache;
        icq->flags |= ICQ_DESTROYED;
-       call_rcu(&icq->__rcu_head, icq_free_icq_rcu);
+       kfree_rcu(icq, __rcu_head);
 }
 
 /*