[rfc patch 0/4] splice: cleanups and fixes

From: Miklos Szeredi
Date: Sat Jun 21 2008 - 11:48:25 EST


Brian Wang reported some problems with NFS export of fuse filesystems,
which turned out to be bad interaction between splice (used by nfsd)
and page cache invalidation.

I looked at the splice code, and found quite a bit of dead code,
duplication, and unnecessary complication. This patchset attempts to
resolve those, in addition to fixing the invalidation issues. Some
optimizations are lost in the process like the gang page lookup for
the fully cached case, and I can't really tell if these are important
enough to warrant the extra complexity.

I did minimal testing to verify that splice(2) on regular files still
works. And since generic_file_splice_read() now shares most of its
code with generic_file_aio_read(), there's not much to go wrong in
there. That said, it needs more testing...

Comments?

Thanks,
Miklos
--

drivers/block/loop.c | 5
fs/nfsd/vfs.c | 9 -
fs/pipe.c | 58 -------
fs/splice.c | 371 +++++-----------------------------------------
include/linux/fs.h | 2
include/linux/pipe_fs_i.h | 36 ----
kernel/relay.c | 2
mm/filemap.c | 2
net/core/skbuff.c | 9 -
9 files changed, 47 insertions(+), 447 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/