• Linus Torvalds's avatar
    Merge branch 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · d3acb15a
    Linus Torvalds authored
    Pull iov_iter updates from Al Viro:
     "iov_iter cleanups and fixes.
    
      There are followups, but this is what had sat in -next this cycle. IMO
      the macro forest in there became much thinner and easier to follow..."
    
    * 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (37 commits)
      csum_and_copy_to_pipe_iter(): leave handling of csum_state to caller
      clean up copy_mc_pipe_to_iter()
      pipe_zero(): we don't need no stinkin' kmap_atomic()...
      iov_iter: clean csum_and_copy_...() primitives up a bit
      copy_page_from_iter(): don't need kmap_atomic() for kvec/bvec cases
      copy_page_to_iter(): don't bother with kmap_atomic() for bvec/kvec cases
      iterate_xarray(): only of the first iteration we might get offset != 0
      pull handling of ->iov_offset into iterate_{iovec,bvec,xarray}
      iov_iter: make iterator callbacks use base and len instead of iovec
      iov_iter: make the amount already copied available to iterator callbacks
      iov_iter: get rid of separate bvec and xarray callbacks
      iov_iter: teach iterate_{bvec,xarray}() about possible short copies
      iterate_bvec(): expand bvec.h macro forest, massage a bit
      iov_iter: unify iterate_iovec and iterate_kvec
      iov_iter: massage iterate_iovec and iterate_kvec to logics similar to iterate_bvec
      iterate_and_advance(): get rid of magic in case when n is 0
      csum_and_copy_to_iter(): massage into form closer to csum_and_copy_from_iter()
      iov_iter: replace iov_iter_copy_from_user_atomic() with iterator-advancing variant
      [xarray] iov_iter_npages(): just use DIV_ROUND_UP()
      iov_iter_npages(): don't bother with iterate_all_kinds()
      ...
    d3acb15a
buffered-io.c 41 KB