函数源码

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source File:fs\aio.c Create Date:2022-07-29 10:53:20
首页 Copyright©Brick

576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
/*
 * free_ioctx() should be RCU delayed to synchronize against the RCU
 * protected lookup_ioctx() and also needs process context to call
 * aio_free_ring().  Use rcu_work.
 */
static void free_ioctx(struct work_struct *work)
{
    struct kioctx *ctx = container_of(to_rcu_work(work), struct kioctx,
                      free_rwork);
    pr_debug("freeing %p\n", ctx);
 
    aio_free_ring(ctx);
    free_percpu(ctx->cpu);
    percpu_ref_exit(&ctx->reqs);
    percpu_ref_exit(&ctx->users);
    kmem_cache_free(kioctx_cachep, ctx);
}