* [PATCH 0/2] two small fixes
@ 2021-10-17 20:33 Pavel Begunkov
2021-10-17 20:33 ` Pavel Begunkov
2021-10-17 20:33 ` [PATCH 2/2] io_uring: fix async_data checks for msg setup Pavel Begunkov
0 siblings, 2 replies; 4+ messages in thread
From: Pavel Begunkov @ 2021-10-17 20:33 UTC (permalink / raw)
To: io-uring; +Cc: Jens Axboe, Pavel Begunkov
The first correctly attributes failed iopoll requests.
2/2 fixes a for-next bug.
Pavel Begunkov (2):
io_uring: fail iopoll links if can't retry
io_uring: fix async_data checks for msg setup
fs/io_uring.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--
2.33.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/2] io_uring: fail iopoll links if can't retry
@ 2021-10-17 20:33 ` Pavel Begunkov
2021-10-18 6:00 ` Greg KH
0 siblings, 1 reply; 4+ messages in thread
From: Pavel Begunkov @ 2021-10-17 20:33 UTC (permalink / raw)
To: io-uring; +Cc: Jens Axboe, Pavel Begunkov, stable
If io_rw_should_reissue() fails in iopoll path and we can't reissue we
fail the request. Don't forget to also mark it as failed, so links are
broken.
Cc: stable@vger.kernel.org
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
---
fs/io_uring.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/fs/io_uring.c b/fs/io_uring.c
index 0d7613c7355c..40b1697e7354 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -2687,6 +2687,7 @@ static void io_complete_rw_iopoll(struct kiocb *kiocb, long res, long res2)
req->flags |= REQ_F_REISSUE;
return;
}
+ req_set_fail(req);
req->result = res;
}
--
2.33.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 1/2] io_uring: fail iopoll links if can't retry
@ 2021-10-17 20:33 ` Pavel Begunkov
2021-10-18 6:00 ` Greg KH
0 siblings, 1 reply; 4+ messages in thread
From: Pavel Begunkov @ 2021-10-17 20:33 UTC (permalink / raw)
To: io-uring; +Cc: Jens Axboe, Pavel Begunkov, stable
If io_rw_should_reissue() fails in iopoll path and we can't reissue we
fail the request. Don't forget to also mark it as failed, so links are
broken.
Cc: stable@vger.kernel.org
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
---
fs/io_uring.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/fs/io_uring.c b/fs/io_uring.c
index 0d7613c7355c..40b1697e7354 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -2687,6 +2687,7 @@ static void io_complete_rw_iopoll(struct kiocb *kiocb, long res, long res2)
req->flags |= REQ_F_REISSUE;
return;
}
+ req_set_fail(req);
req->result = res;
}
--
2.33.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] io_uring: fail iopoll links if can't retry
2021-10-17 20:33 ` Pavel Begunkov
@ 2021-10-18 6:00 ` Greg KH
0 siblings, 0 replies; 4+ messages in thread
From: Greg KH @ 2021-10-18 6:00 UTC (permalink / raw)
To: Pavel Begunkov; +Cc: stable
On Sun, Oct 17, 2021 at 08:30:55PM +0000, Pavel Begunkov wrote:
> If io_rw_should_reissue() fails in iopoll path and we can't reissue we
> fail the request. Don't forget to also mark it as failed, so links are
> broken.
>
> Cc: stable@vger.kernel.org
> Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
> ---
> fs/io_uring.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/fs/io_uring.c b/fs/io_uring.c
> index 0d7613c7355c..40b1697e7354 100644
> --- a/fs/io_uring.c
> +++ b/fs/io_uring.c
> @@ -2687,6 +2687,7 @@ static void io_complete_rw_iopoll(struct kiocb *kiocb, long res, long res2)
> req->flags |= REQ_F_REISSUE;
> return;
> }
> + req_set_fail(req);
> req->result = res;
> }
>
> --
> 2.33.1
>
<formletter>
This is not the correct way to submit patches for inclusion in the
stable kernel tree. Please read:
https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
for how to do this properly.
</formletter>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 2/2] io_uring: fix async_data checks for msg setup
2021-10-17 20:33 [PATCH 0/2] two small fixes Pavel Begunkov
2021-10-17 20:33 ` Pavel Begunkov
@ 2021-10-17 20:33 ` Pavel Begunkov
1 sibling, 0 replies; 4+ messages in thread
From: Pavel Begunkov @ 2021-10-17 20:33 UTC (permalink / raw)
To: io-uring; +Cc: Jens Axboe, Pavel Begunkov
We should use req_has_async_data() instead of directly testing
->async_data to see if async_data has been allocated, there is one spot
slipped that doesn't follow the rule.
Fixes: 016e0451e9ed0 ("io_uring: control ->async_data with a REQ_F flag")
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
---
fs/io_uring.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/io_uring.c b/fs/io_uring.c
index 40b1697e7354..7ead1507be9b 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -4683,9 +4683,9 @@ static int io_sync_file_range(struct io_kiocb *req, unsigned int issue_flags)
static int io_setup_async_msg(struct io_kiocb *req,
struct io_async_msghdr *kmsg)
{
- struct io_async_msghdr *async_msg = req->async_data;
+ struct io_async_msghdr *async_msg;
- if (async_msg)
+ if (req_has_async_data(req))
return -EAGAIN;
if (io_alloc_async_data(req)) {
kfree(kmsg->free_iov);
--
2.33.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-10-18 6:00 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-17 20:33 [PATCH 0/2] two small fixes Pavel Begunkov
2021-10-17 20:33 ` [PATCH 1/2] io_uring: fail iopoll links if can't retry Pavel Begunkov
2021-10-17 20:33 ` Pavel Begunkov
2021-10-18 6:00 ` Greg KH
2021-10-17 20:33 ` [PATCH 2/2] io_uring: fix async_data checks for msg setup Pavel Begunkov
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.