All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@kernel.dk>
To: Yitang Yang <yi1tang.yang@gmail.com>
Cc: krisman@suse.de, io-uring@vger.kernel.org
Subject: Re: [PATCH] io_uring/rw: fix missing ERESTARTSYS conversion in read paths
Date: Wed, 22 Jul 2026 04:32:40 -0600	[thread overview]
Message-ID: <902127f0-83b6-46d2-9e7e-71cee4d63016@kernel.dk> (raw)
In-Reply-To: <20260720114116.21830-1-yi1tang.yang@gmail.com>

On 7/20/26 5:41 AM, Yitang Yang wrote:
> Both read and write may receive internal restart error codes from
> the filesystem layer and should be converted to -EINTR. However,
> when multishot read support was added, the error code normalization
> was lost for both io_read() and io_read_mshot().
> 
> Extract the conversion into io_fixup_restart_res() and apply it
> in all three locations: io_rw_done(), io_read(), and io_read_mshot().

Functionally this looks good, just a few cosmetic nits below.

> Fixes: a08d195b586a ("io_uring/rw: split io_read() into a helper")
> Signed-off-by: Yitang Yang <yi1tang.yang@gmail.com>

And this one needs a Cc: stable@vger.kernel.org

> @@ -625,19 +643,7 @@ static inline void io_rw_done(struct io_kiocb *req, ssize_t ret)
>  
>  	/* transform internal restart error codes */
>  	if (unlikely(ret < 0)) {
> -		switch (ret) {
> -		case -ERESTARTSYS:
> -		case -ERESTARTNOINTR:
> -		case -ERESTARTNOHAND:
> -		case -ERESTART_RESTARTBLOCK:
> -			/*
> -			 * We can't just restart the syscall, since previously
> -			 * submitted sqes may already be in progress. Just fail
> -			 * this IO with EINTR.
> -			 */
> -			ret = -EINTR;
> -			break;
> -		}
> +		ret = io_fixup_restart_res(ret);
>  	}

No need for braces anymore on the 'if' statement, just drop those.

> @@ -1034,6 +1040,8 @@ int io_read(struct io_kiocb *req, unsigned int issue_flags)
>  
>  	if (req->flags & REQ_F_BUFFERS_COMMIT)
>  		io_kbuf_recycle(req, sel.buf_list, issue_flags);
> +
> +	ret = io_fixup_restart_res(ret);
>  	return ret;
>  }

return io_fixup_restart_res(ret);

-- 
Jens Axboe

  parent reply	other threads:[~2026-07-22 10:32 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-20 11:41 [PATCH] io_uring/rw: fix missing ERESTARTSYS conversion in read paths Yitang Yang
2026-07-21 16:32 ` Jens Axboe
2026-07-22  3:08   ` Yitang Yang
2026-07-22 10:28     ` Jens Axboe
2026-07-22 10:32 ` Jens Axboe [this message]
2026-07-22 12:36   ` Yitang Yang
2026-07-22 13:37     ` Jens Axboe
2026-07-22 12:45 ` [PATCH v2] " Yitang Yang
2026-07-22 13:37   ` Jens Axboe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=902127f0-83b6-46d2-9e7e-71cee4d63016@kernel.dk \
    --to=axboe@kernel.dk \
    --cc=io-uring@vger.kernel.org \
    --cc=krisman@suse.de \
    --cc=yi1tang.yang@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.