[PATCH] io_uring: fix short read slow path corruptions

2022-06-29 Thread Dominique Martinet
sqeq.off here is the offset to read within the disk image, so obviously not 'nread' (the amount we just read), but as the author meant to write its current value incremented by the amount we just read. Normally recent versions of linux will not issue short reads, but apparently btrfs with O_DIRECT

Re: [PATCH] io_uring: fix short read slow path corruptions

2022-06-29 Thread Dominique Martinet
Kevin Wolf wrote on Wed, Jun 29, 2022 at 10:46:08AM +0200: > I see this a few lines above: > > /* Update read position */ > luringcb->total_read = nread; > > Doesn't it have the same problem? Though maybe getting two short reads > is more of a theoretical case. Good catch, I'll send a v2

[PATCH] io_uring: fix short read slow path corruptions

2022-06-29 Thread Dominique Martinet
sqeq.off here is the offset to read within the disk image, so obviously not 'nread' (the amount we just read), but as the author meant to write its current value incremented by the amount we just read. Normally recent versions of linux will not issue short reads, but apparently btrfs with O_DIRECT

Re: [PATCH] io_uring: fix short read slow path corruptions

2022-06-29 Thread Kevin Wolf
Am 29.06.2022 um 07:23 hat Dominique Martinet geschrieben: > sqeq.off here is the offset to read within the disk image, so obviously > not 'nread' (the amount we just read), but as the author meant to write > its current value incremented by the amount we just read. > > Normally recent versions of