[git pull] vfs pile 1 (splice)

From: Al Viro
Date: Fri Oct 07 2016 - 18:21:12 EST


splice stuff. There are conflicts in lustre; proposed resolution
is in #merge-candidate (same as it is in linux-next). There's a bunch of
branches this cycle, both mine and from other folks and I'd rather send
pull requests separately. This one is the conversion of ->splice_read()
to ITER_PIPE iov_iter (and introduction of such). Gets rid of a lot of
code in fs/splice.c and elsewhere; there will be followups, but these are
for the next cycle... Some pipe/splice-related cleanups from Miklos in
the same branch as well.

The following changes since commit 08895a8b6b06ed2323cd97a36ee40a116b3db8ed:

Linux 4.8-rc8 (2016-09-25 18:47:13 -0700)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.splice_read

for you to fetch changes up to a949e63992469fed87aef197347960ced31701b8:

pipe: fix comment in pipe_buf_operations (2016-10-05 18:24:00 -0400)

----------------------------------------------------------------
Al Viro (11):
consistent treatment of EFAULT on O_DIRECT read/write
splice_to_pipe(): don't open-code wakeup_pipe_readers()
splice: switch get_iovec_page_array() to iov_iter
splice: lift pipe_lock out of splice_to_pipe()
new helper: add_to_pipe()
skb_splice_bits(): get rid of callback
fuse_dev_splice_read(): switch to add_to_pipe()
new iov_iter flavour: pipe-backed
switch generic_file_splice_read() to use of ->read_iter()
switch default_file_splice_read() to use of pipe-backed iov_iter
relay: simplify relay_file_read()

Miklos Szeredi (5):
pipe: add pipe_buf_get() helper
pipe: add pipe_buf_release() helper
pipe: add pipe_buf_confirm() helper
pipe: add pipe_buf_steal() helper
pipe: fix comment in pipe_buf_operations

drivers/char/virtio_console.c | 2 +-
drivers/staging/lustre/lustre/llite/file.c | 89 +--
.../staging/lustre/lustre/llite/llite_internal.h | 15 +-
drivers/staging/lustre/lustre/llite/vvp_internal.h | 14 -
drivers/staging/lustre/lustre/llite/vvp_io.c | 45 +-
fs/coda/file.c | 23 +-
fs/direct-io.c | 3 +
fs/fuse/dev.c | 63 +-
fs/gfs2/file.c | 28 +-
fs/nfs/file.c | 25 +-
fs/nfs/internal.h | 2 -
fs/nfs/nfs4file.c | 2 +-
fs/ocfs2/file.c | 34 +-
fs/ocfs2/ocfs2_trace.h | 2 -
fs/pipe.c | 13 +-
fs/splice.c | 683 ++++++---------------
fs/xfs/xfs_file.c | 41 +-
fs/xfs/xfs_trace.h | 1 -
include/linux/fs.h | 2 -
include/linux/pipe_fs_i.h | 59 +-
include/linux/skbuff.h | 8 +-
include/linux/splice.h | 3 +
include/linux/uio.h | 14 +-
kernel/relay.c | 78 +--
lib/iov_iter.c | 395 +++++++++++-
mm/shmem.c | 115 +---
net/core/skbuff.c | 28 +-
net/ipv4/tcp.c | 3 +-
net/kcm/kcmsock.c | 16 +-
net/unix/af_unix.c | 17 +-
30 files changed, 746 insertions(+), 1077 deletions(-)