On Sun, Aug 04, 2019 at 07:32:06PM -0700, [email protected] wrote:
> From: John Hubbard <[email protected]>
> 
> For pages that were retained via get_user_pages*(), release those pages
> via the new put_user_page*() routines, instead of via put_page() or
> release_pages().
> 
> This is part a tree-wide conversion, as described in commit fc1d8e7cca2d
> ("mm: introduce put_user_page*(), placeholder versions").
> 
> Cc: Alexander Viro <[email protected]>
> Cc: Jens Axboe <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> Signed-off-by: John Hubbard <[email protected]>

Signed-off-by: Ira Weiny <[email protected]>

> ---
>  fs/io_uring.c | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/fs/io_uring.c b/fs/io_uring.c
> index d542f1cf4428..8a1de5ab9c6d 100644
> --- a/fs/io_uring.c
> +++ b/fs/io_uring.c
> @@ -2815,7 +2815,7 @@ static int io_sqe_buffer_unregister(struct io_ring_ctx 
> *ctx)
>               struct io_mapped_ubuf *imu = &ctx->user_bufs[i];
>  
>               for (j = 0; j < imu->nr_bvecs; j++)
> -                     put_page(imu->bvec[j].bv_page);
> +                     put_user_page(imu->bvec[j].bv_page);
>  
>               if (ctx->account_mem)
>                       io_unaccount_mem(ctx->user, imu->nr_bvecs);
> @@ -2959,10 +2959,8 @@ static int io_sqe_buffer_register(struct io_ring_ctx 
> *ctx, void __user *arg,
>                        * if we did partial map, or found file backed vmas,
>                        * release any pages we did get
>                        */
> -                     if (pret > 0) {
> -                             for (j = 0; j < pret; j++)
> -                                     put_page(pages[j]);
> -                     }
> +                     if (pret > 0)
> +                             put_user_pages(pages, pret);
>                       if (ctx->account_mem)
>                               io_unaccount_mem(ctx->user, nr_pages);
>                       kvfree(imu->bvec);
> -- 
> 2.22.0
> 

Reply via email to