[PATCH 1/3] io_uring/rw: fix short rw error handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Please ignore this email. It has been sent by mistake.
Wont happen again.

Sincerest apologies for the spam.

Thanks and Regards,
Avadhut Naik


On 9/19/2022 4:11 PM, Jens Axboe wrote:
> On 9/19/22 2:17 PM, Avadhut Naik wrote:
>> From: Pavel Begunkov <asml.silence@xxxxxxxxx>
>>
>> We have a couple of problems, first reports of unexpected link breakage
>> for reads when cqe->res indicates that the IO was done in full. The
>> reason here is partial IO with retries.
>>
>> TL;DR; we compare the result in __io_complete_rw_common() against
>> req->cqe.res, but req->cqe.res doesn't store the full length but rather
>> the length left to be done. So, when we pass the full corrected result
>> via kiocb_done() -> __io_complete_rw_common(), it fails.
>>
>> The second problem is that we don't try to correct res in
>> io_complete_rw(), which, for instance, might be a problem for O_DIRECT
>> but when a prefix of data was cached in the page cache. We also
>> definitely don't want to pass a corrected result into io_rw_done().
>>
>> The fix here is to leave __io_complete_rw_common() alone, always pass
>> not corrected result into it and fix it up as the last step just before
>> actually finishing the I/O.
> 
> I'm confused by this email, why is it being sent? And what are the 2-3/3
> patches?
> 
> And while this one should certainly go to stable, also note that:
> 
> commit 62bb0647b14646fa6c9aa25ecdf67ad18f13523c
> Author: Pavel Begunkov <asml.silence@xxxxxxxxx>
> Date:   Tue Sep 13 13:21:23 2022 +0100
> 
>     io_uring/rw: fix error'ed retry return values
> 
> exists in Linus's tree and should go in alongside the parent as it
> fixes the parameter type.
> 



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux