Re: [PATCH 1/2] io_uring/rw: fix link failure on successful pipe short reads
Jens Axboe <[email protected]>
| Newsgroups | org.kernel.vger.io-uring |
|---|---|
| Message-ID | <[email protected]> |
On 6/12/26 12:29 AM, Yang Xiuwei wrote: > Hi Jens, > > Following up on my note below. > > Patch 1/2 was motivated by __io_read() returning short reads on pipes > and sockets without retrying, while __io_complete_rw_common() still > failed the link chain. I had not fully understood IOSQE_IO_LINK at the > time. When a chain depends on reading a full buffer from a pipe or > socket, a short read means that dependency is not met and the chain > should fail. IOSQE_IO_HARDLINK is the right option when later requests > must still run despite a short read. Sorry for the confusion. I will > drop patch 1/2. All good. > Regarding patch 2/2: the current code does not handle TIMEOUT_REMOVE > against pending link timeouts on ltimeout_list, while > IORING_LINK_TIMEOUT_UPDATE already has a separate path for them. Was > leaving ltimeout_list out of the remove/cancel path intentional, or > simply an oversight? If the current behaviour is intended, I will drop > patch 2/2 as well. I think that one could get done, even if it is a special kind of timeout. But the devil is in the details, easy to get that wrong. I'll take a look at this, but it'll be post the 7.2 slated changes as the merge window is just about to open. -- Jens Axboe