• Linus Torvalds's avatar
    Merge tag 'iov_iter.3-5.15-2021-09-17' of git://git.kernel.dk/linux-block · ddf21bd8
    Linus Torvalds authored
    Pull io_uring iov_iter retry fixes from Jens Axboe:
     "This adds a helper to save/restore iov_iter state, and modifies
      io_uring to use it.
    
      After that is done, we can now kill the iter->truncated addition that
      we added for this release. The io_uring change is being overly
      cautious with the save/restore/advance, but better safe than sorry and
      we can always improve that and reduce the overhead if it proves to be
      of concern. The only case to be worried about in this regard is huge
      IO, where iteration can take a while to iterate segments.
    
      I spent some time writing test cases, and expanded the coverage quite
      a bit from the last posting of this. liburing carries this regression
      test case now:
    
          https://git.kernel.dk/cgit/liburing/tree/test/file-verify.c
    
      which exercises all of this. It now also supports provided buffers,
      and explicitly tests for end-of-file/device truncation as well.
    
      On top of that, Pavel sanitized the IOPOLL retry path to follow the
      exact same pattern as normal IO"
    
    * tag 'iov_iter.3-5.15-2021-09-17' of git://git.kernel.dk/linux-block:
      io_uring: move iopoll reissue into regular IO path
      Revert "iov_iter: track truncated size"
      io_uring: use iov_iter state save/restore helpers
      iov_iter: add helper to save iov_iter state
    ddf21bd8
io_uring.c 269 KB