Message ID | 20241013201704.49576-10-Julia.Lawall@inria.fr (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | replace call_rcu by kfree_rcu for simple kmem_cache_free callback | expand |
On Sun, Oct 13, 2024 at 10:16:56PM +0200, Julia Lawall wrote: > 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> > > --- > block/blk-ioc.c | 9 +-------- > 1 file changed, 1 insertion(+), 8 deletions(-) > > diff --git a/block/blk-ioc.c b/block/blk-ioc.c > index 25dd4db11121..ce82770c72ab 100644 > --- a/block/blk-ioc.c > +++ b/block/blk-ioc.c > @@ -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); > } > > /* > > Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com> -- Uladzislau Rezki
diff --git a/block/blk-ioc.c b/block/blk-ioc.c index 25dd4db11121..ce82770c72ab 100644 --- a/block/blk-ioc.c +++ b/block/blk-ioc.c @@ -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); } /*
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> --- block/blk-ioc.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-)