> Can we name some of those fixes here pls? Some/all of this bunch from Al Viro: a180bd1d7e16 iov_iter: remove uaccess_kernel() warning from iov_iter_init() 6852df126699 csum_and_copy_to_pipe_iter(): leave handling of csum_state to caller 2a510a744beb clean up copy_mc_pipe_to_iter() 893839fd5733 pipe_zero(): we don't need no stinkin' kmap_atomic()... 2495bdcc86dc iov_iter: clean csum_and_copy_...() primitives up a bit 55ca375c5dcc copy_page_from_iter(): don't need kmap_atomic() for kvec/bvec cases c1d4d6a9ae88 copy_page_to_iter(): don't bother with kmap_atomic() for bvec/kvec cases 4b179e9a9c7c iterate_xarray(): only of the first iteration we might get offset != 0 a6e4ec7bfd32 pull handling of ->iov_offset into iterate_{iovec,bvec,xarray} 7baa5099002f iov_iter: make iterator callbacks use base and len instead of iovec 622838f3fde2 iov_iter: make the amount already copied available to iterator callbacks 21b56c847753 iov_iter: get rid of separate bvec and xarray callbacks 1b4fb5ffd79b iov_iter: teach iterate_{bvec,xarray}() about possible short copies 7491a2bf64e3 iterate_bvec(): expand bvec.h macro forest, massage a bit 5c67aa90cd5c iov_iter: unify iterate_iovec and iterate_kvec 7a1bcb5d255d iov_iter: massage iterate_iovec and iterate_kvec to logics similar to iterate_bvec f5da83545f4e iterate_and_advance(): get rid of magic in case when n is 0 594e450b3f44 csum_and_copy_to_iter(): massage into form closer to csum_and_copy_from_iter() f0b65f39ac50 iov_iter: replace iov_iter_copy_from_user_atomic() with iterator-advancing variant e4f8df86798a [xarray] iov_iter_npages(): just use DIV_ROUND_UP() 66531c65aa25 iov_iter_npages(): don't bother with iterate_all_kinds() 3d671ca62a08 get rid of iterate_all_kinds() in iov_iter_get_pages()/iov_iter_get_pages_alloc() 610c7a71543d iov_iter_gap_alignment(): get rid of iterate_all_kinds() 9221d2e37b72 iov_iter_alignment(): don't bother with iterate_all_kinds() 8409a0d261e2 sanitize iov_iter_fault_in_readable() 185ac4d43669 iov_iter: optimize iov_iter_advance() for iovec and kvec 8cd54c1c8480 iov_iter: separate direction from flavour 556351c1c09a iov_iter_advance(): don't modify ->iov_offset for ITER_DISCARD 28f38db7edbf iov_iter: reorder handling of flavours in primitives 4b6c132b7da6 iov_iter: switch ..._full() variants of primitives to use of iov_iter_revert() 3b3fc051cd2c iov_iter_advance(): use consistent semantics for move past the end 0e8f0d674015 [xarray] iov_iter_fault_in_readable() should do nothing in xarray case a506abc7b644 copy_page_to_iter(): fix ITER_DISCARD case 08aa64796016 teach copy_page_to_iter() to handle compound pages 66cd071a1f83 iov_iter: Remove iov_iter_for_each_range() -Tony