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 |
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
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 --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);
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