From: Miklos Szeredi <miklos@szeredi.hu>
To: jens.axboe@oracle.com
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, torvalds@linux-foundation.org
Subject: [rfc patch 0/4] splice: cleanups and fixes
Date: Sat, 21 Jun 2008 17:46:07 +0200 [thread overview]
Message-ID: <20080621154607.154640724@szeredi.hu> (raw)
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, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next reply other threads:[~2008-06-21 15:46 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-21 15:46 Miklos Szeredi [this message]
2008-06-21 15:46 ` [rfc patch 1/4] splice: fix comment Miklos Szeredi, Miklos Szeredi
2008-06-21 15:46 ` [rfc patch 2/4] splice: remove steal from pipe_buf_operations Miklos Szeredi, Miklos Szeredi
2008-06-24 8:01 ` Jens Axboe
2008-06-24 8:50 ` Miklos Szeredi
2008-06-24 12:21 ` Nick Piggin
2008-06-21 15:46 ` [rfc patch 3/4] splice: remove confirm " Miklos Szeredi, Miklos Szeredi
2008-06-24 8:04 ` Jens Axboe
2008-06-24 8:54 ` Miklos Szeredi
2008-06-24 11:19 ` Jens Axboe
2008-06-24 11:36 ` Miklos Szeredi
2008-06-24 11:46 ` Evgeniy Polyakov
2008-06-24 12:02 ` Miklos Szeredi
2008-06-24 12:15 ` Evgeniy Polyakov
2008-06-24 12:16 ` Nick Piggin
2008-06-24 12:22 ` Jens Axboe
2008-06-24 13:00 ` Miklos Szeredi
2008-06-24 17:30 ` Linus Torvalds
2008-06-24 18:24 ` Miklos Szeredi
2008-06-24 18:31 ` Linus Torvalds
2008-06-24 19:05 ` Miklos Szeredi
2008-06-24 19:17 ` Linus Torvalds
2008-06-24 19:24 ` Miklos Szeredi
2008-06-24 19:26 ` Miklos Szeredi
2008-06-24 19:32 ` Miklos Szeredi
2008-06-24 19:47 ` Linus Torvalds
2008-06-24 20:06 ` Miklos Szeredi
2008-06-24 19:45 ` Linus Torvalds
2008-06-21 15:46 ` [rfc patch 4/4] splice: use do_generic_file_read() Miklos Szeredi, Miklos Szeredi
2008-06-24 8:05 ` Jens Axboe
2008-06-24 11:11 ` Miklos Szeredi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080621154607.154640724@szeredi.hu \
--to=miklos@szeredi.hu \
--cc=jens.axboe@oracle.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox