diff mbox series

[5.19] io_uring: do not use prio task_work_add in uring_cmd

Message ID 20220616135011.441980-1-dylany@fb.com (mailing list archive)
State New
Headers show
Series [5.19] io_uring: do not use prio task_work_add in uring_cmd | expand

Commit Message

Dylan Yudaken June 16, 2022, 1:50 p.m. UTC
io_req_task_prio_work_add has a strict assumption that it will only be
used with io_req_task_complete. There is a codepath that assumes this is
the case and will not even call the completion function if it is hit.

For uring_cmd with an arbitrary completion function change the call to the
correct non-priority version.

Fixes: ee692a21e9bf8 ("fs,io_uring: add infrastructure for uring-cmd")
Signed-off-by: Dylan Yudaken <dylany@fb.com>
---
 fs/io_uring.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


base-commit: b13baccc3850ca8b8cccbf8ed9912dbaa0fdf7f3

Comments

Pavel Begunkov June 16, 2022, 1:53 p.m. UTC | #1
On 6/16/22 14:50, Dylan Yudaken wrote:
> io_req_task_prio_work_add has a strict assumption that it will only be
> used with io_req_task_complete. There is a codepath that assumes this is
> the case and will not even call the completion function if it is hit.
> 
> For uring_cmd with an arbitrary completion function change the call to the
> correct non-priority version.

Reviewed-by: Pavel Begunkov <asml.silence@gmail.com>



> Fixes: ee692a21e9bf8 ("fs,io_uring: add infrastructure for uring-cmd")
> Signed-off-by: Dylan Yudaken <dylany@fb.com>
> ---
>   fs/io_uring.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/io_uring.c b/fs/io_uring.c
> index 3aab4182fd89..a7ac2d3bce76 100644
> --- a/fs/io_uring.c
> +++ b/fs/io_uring.c
> @@ -5079,7 +5079,7 @@ void io_uring_cmd_complete_in_task(struct io_uring_cmd *ioucmd,
>   
>   	req->uring_cmd.task_work_cb = task_work_cb;
>   	req->io_task_work.func = io_uring_cmd_work;
> -	io_req_task_prio_work_add(req);
> +	io_req_task_work_add(req);
>   }
>   EXPORT_SYMBOL_GPL(io_uring_cmd_complete_in_task);
>   
> 
> base-commit: b13baccc3850ca8b8cccbf8ed9912dbaa0fdf7f3
Jens Axboe June 16, 2022, 3:14 p.m. UTC | #2
On Thu, 16 Jun 2022 06:50:11 -0700, Dylan Yudaken wrote:
> io_req_task_prio_work_add has a strict assumption that it will only be
> used with io_req_task_complete. There is a codepath that assumes this is
> the case and will not even call the completion function if it is hit.
> 
> For uring_cmd with an arbitrary completion function change the call to the
> correct non-priority version.
> 
> [...]

Applied, thanks!

[1/1] io_uring: do not use prio task_work_add in uring_cmd
      commit: 32fc810b364f3dd30930c594e461ffa1761fef39

Best regards,
diff mbox series

Patch

diff --git a/fs/io_uring.c b/fs/io_uring.c
index 3aab4182fd89..a7ac2d3bce76 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -5079,7 +5079,7 @@  void io_uring_cmd_complete_in_task(struct io_uring_cmd *ioucmd,
 
 	req->uring_cmd.task_work_cb = task_work_cb;
 	req->io_task_work.func = io_uring_cmd_work;
-	io_req_task_prio_work_add(req);
+	io_req_task_work_add(req);
 }
 EXPORT_SYMBOL_GPL(io_uring_cmd_complete_in_task);