lkml.org 
[lkml]   [2021]   [Aug]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/2] iov_iter: mark truncated iters
    Date
    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
    \
     
     \ /
      Last update: 2021-08-09 13:53    [W:3.264 / U:1.196 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site