Message ID | cover.1629713020.git.asml.silence@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | iter revert problems | expand |
On 8/23/21 4:18 AM, Pavel Begunkov wrote: > iov_iter_revert() doesn't go well with iov_iter_truncate() in all > cases, see 2/2 for the bug description. As mentioned there the current > problems is because of generic_write_checks(), but there was also a > similar case fixed in 5.12, which should have been triggerable by normal > write(2)/read(2) and others. > > It may be better to enforce reexpands as a long term solution, but for > now this patchset is quickier and easier to backport. Al, given the discussion from this weekend, are you fine with the first patch? If so, would be great with an ack/review. Or, if you want to funnel this for 5.14, you can add: Reviewed-by: Jens Axboe <axboe@kernel.dk>
On 8/23/21 4:18 AM, Pavel Begunkov wrote: > iov_iter_revert() doesn't go well with iov_iter_truncate() in all > cases, see 2/2 for the bug description. As mentioned there the current > problems is because of generic_write_checks(), but there was also a > similar case fixed in 5.12, which should have been triggerable by normal > write(2)/read(2) and others. > > It may be better to enforce reexpands as a long term solution, but for > now this patchset is quickier and easier to backport. > > v2: don't fail if it was justly fully reverted > v3: use truncated size + reexapand based approach Al, let's get this upstream. How do you want to handle it? I can take it through the io_uring tree, or it can go through your tree. I really don't care which route it takes, but we should get this upstream as it solves a real problem.
On Fri, Sep 03, 2021 at 02:55:26PM -0600, Jens Axboe wrote: > On 8/23/21 4:18 AM, Pavel Begunkov wrote: > > iov_iter_revert() doesn't go well with iov_iter_truncate() in all > > cases, see 2/2 for the bug description. As mentioned there the current > > problems is because of generic_write_checks(), but there was also a > > similar case fixed in 5.12, which should have been triggerable by normal > > write(2)/read(2) and others. > > > > It may be better to enforce reexpands as a long term solution, but for > > now this patchset is quickier and easier to backport. > > > > v2: don't fail if it was justly fully reverted > > v3: use truncated size + reexapand based approach > > Al, let's get this upstream. How do you want to handle it? I can take > it through the io_uring tree, or it can go through your tree. I really > don't care which route it takes, but we should get this upstream as > it solves a real problem. Grabbed, will test and send a pull request...
On 9/3/21 3:55 PM, Al Viro wrote: > On Fri, Sep 03, 2021 at 02:55:26PM -0600, Jens Axboe wrote: >> On 8/23/21 4:18 AM, Pavel Begunkov wrote: >>> iov_iter_revert() doesn't go well with iov_iter_truncate() in all >>> cases, see 2/2 for the bug description. As mentioned there the current >>> problems is because of generic_write_checks(), but there was also a >>> similar case fixed in 5.12, which should have been triggerable by normal >>> write(2)/read(2) and others. >>> >>> It may be better to enforce reexpands as a long term solution, but for >>> now this patchset is quickier and easier to backport. >>> >>> v2: don't fail if it was justly fully reverted >>> v3: use truncated size + reexapand based approach >> >> Al, let's get this upstream. How do you want to handle it? I can take >> it through the io_uring tree, or it can go through your tree. I really >> don't care which route it takes, but we should get this upstream as >> it solves a real problem. > > Grabbed, will test and send a pull request... Thanks Al! We should mark these for stable as well.