Messages in this thread Patch in this message | | | From | Pavel Begunkov <> | Subject | [PATCH v2 1/2] iov_iter: mark truncated iters | Date | Thu, 12 Aug 2021 21:40:46 +0100 |
| |
Track if an iterator has ever been truncated. This will be used to mitigate revert-truncate problems.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> --- include/linux/uio.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/include/linux/uio.h b/include/linux/uio.h index 82c3c3e819e0..61b8d312d13a 100644 --- a/include/linux/uio.h +++ b/include/linux/uio.h @@ -30,6 +30,7 @@ enum iter_type { struct iov_iter { u8 iter_type; bool data_source; + bool truncated; size_t iov_offset; size_t count; union { @@ -254,8 +255,10 @@ static inline void iov_iter_truncate(struct iov_iter *i, u64 count) * conversion in assignement is by definition greater than all * values of size_t, including old i->count. */ - if (i->count > count) + if (i->count > count) { i->count = count; + i->truncated = true; + } } /* -- 2.32.0
| |