• Matthew Wilcox's avatar
    Add copy_to_iter(), copy_from_iter() and iov_iter_zero() · c35e0248
    Matthew Wilcox authored
    For DAX, we want to be able to copy between iovecs and kernel addresses
    that don't necessarily have a struct page.  This is a fairly simple
    rearrangement for bvec iters to kmap the pages outside and pass them in,
    but for user iovecs it gets more complicated because we might try various
    different ways to kmap the memory.  Duplicating the existing logic works
    out best in this case.
    
    We need to be able to write zeroes to an iovec for reads from unwritten
    ranges in a file.  This is performed by the new iov_iter_zero() function,
    again patterned after the existing code that handles iovec iterators.
    
    [AV: and export the buggers...]
    Signed-off-by: default avatarMatthew Wilcox <willy@linux.intel.com>
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    c35e0248
iov_iter.c 21 KB