[PATCH v3 0/2] iter revert problems

From: Pavel Begunkov
Date: Mon Aug 23 2021 - 06:19:29 EST


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

Pavel Begunkov (2):
iov_iter: track truncated size
io_uring: reexpand under-reexpanded iters

fs/io_uring.c | 2 ++
include/linux/uio.h | 6 +++++-
2 files changed, 7 insertions(+), 1 deletion(-)

--
2.32.0