On Sun, Nov 23, 2014 at 07:28:10PM -0500, Jeff Layton wrote:
On Sun, 23 Nov 2014 15:36:37 -0800
Josh Triplett [off-list ref] wrote:
quoted
On Sun, Nov 23, 2014 at 09:30:40PM +0100, Pieter Smith wrote:
quoted
On Sun, Nov 23, 2014 at 11:43:26AM -0800, Josh Triplett wrote:
quoted
On Sun, Nov 23, 2014 at 01:46:23PM -0500, David Miller wrote:
quoted
Truly removing sendfile/sendpage means that you can't even compile NFS
into the tree.
If you mean the in-kernel nfsd (CONFIG_NFSD), that already has a large
stack of "select" and "depends on", both directly and indirectly; adding
a "select SPLICE_SYSCALL" to it seems fine. (That select does need
adding, though. Pieter, you need to test-compile more than just
tinyconfig and defconfig. Try an allyesconfig with *just* splice turned
off, and make sure that compiles.)
Did exacly that. Took forever on my hardware, but no problems.
Ah, I see. Looking more closely at nfsd, it looks like it already has a
code path for filesystems that don't do splice. I think, rather than
making nfsd select SPLICE_SYSCALL, that it would suffice to change the
"rqstp->rq_splice_ok = true;" in svc_process_common (net/sunrpc/svc.c)
to:
rqstp->rq_splice_ok = IS_ENABLED(CONFIG_SPLICE_SYSCALL);
Then nfsd should simply *always* fall back to its non-splice support.
I'd probably prefer the above, actually. We have to keep supporting
non-splice enabled fs' for the forseeable future, so we may as well
allow people to run nfsd in such configurations. It could even be
useful for testing the non-splice-enabled codepaths.
Good point!
- Josh Triplett