On Mon, Mar 05, 2018 at 01:27:13PM -0800, Christoph Hellwig wrote:
> One we cancel an iocb there is no reason to keep it on the active_reqs
> list, given that the list is only used to look for cancelation candidates.
> 
> Signed-off-by: Christoph Hellwig <h...@lst.de>
> Acked-by: Jeff Moyer <jmo...@redhat.com>

Reviewed-by: Darrick J. Wong <darrick.w...@oracle.com>

--D

> ---
>  fs/aio.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/aio.c b/fs/aio.c
> index 2d40cf5dd4ec..0b6394b4e528 100644
> --- a/fs/aio.c
> +++ b/fs/aio.c
> @@ -561,6 +561,8 @@ static int kiocb_cancel(struct aio_kiocb *kiocb)
>  {
>       kiocb_cancel_fn *cancel = kiocb->ki_cancel;
>  
> +     list_del_init(&kiocb->ki_list);
> +
>       if (!cancel)
>               return -EINVAL;
>       kiocb->ki_cancel = NULL;
> @@ -607,8 +609,6 @@ static void free_ioctx_users(struct percpu_ref *ref)
>       while (!list_empty(&ctx->active_reqs)) {
>               req = list_first_entry(&ctx->active_reqs,
>                                      struct aio_kiocb, ki_list);
> -
> -             list_del_init(&req->ki_list);
>               kiocb_cancel(req);
>       }
>  
> -- 
> 2.14.2
> 

Reply via email to