percpu-refcount, aio: use percpu_ref_cancel_init() in ioctx_alloc()
ioctx_alloc() reaches inside percpu_ref and directly frees ->pcpu_count in its failure path, which is quite gross. percpu_ref has been providing a proper interface to do this, percpu_ref_cancel_init(), for quite some time now. Let's use that instead. This patch doesn't introduce any behavior changes. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Benjamin LaHaise <bcrl@kvack.org> Cc: Kent Overstreet <kmo@daterainc.com>
This commit is contained in:
parent
807407c0a2
commit
55c6c814ae
4
fs/aio.c
4
fs/aio.c
|
@ -715,8 +715,8 @@ static struct kioctx *ioctx_alloc(unsigned nr_events)
|
|||
err:
|
||||
mutex_unlock(&ctx->ring_lock);
|
||||
free_percpu(ctx->cpu);
|
||||
free_percpu(ctx->reqs.pcpu_count);
|
||||
free_percpu(ctx->users.pcpu_count);
|
||||
percpu_ref_cancel_init(&ctx->reqs);
|
||||
percpu_ref_cancel_init(&ctx->users);
|
||||
kmem_cache_free(kioctx_cachep, ctx);
|
||||
pr_debug("error allocating ioctx %d\n", err);
|
||||
return ERR_PTR(err);
|
||||
|
|
Loading…
Reference in New Issue
Block a user