Messages in this thread | | | Date | Sun, 23 Nov 2014 15:36:37 -0800 | From | Josh Triplett <> | Subject | Re: [PATCH 0/6] kernel tinification: optionally compile out splice family of syscalls (splice, vmsplice, tee and sendfile) |
| |
On Sun, Nov 23, 2014 at 09:30:40PM +0100, Pieter Smith wrote: > On Sun, Nov 23, 2014 at 11:43:26AM -0800, Josh Triplett wrote: > > On Sun, Nov 23, 2014 at 01:46:23PM -0500, David Miller wrote: > > > 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.
That said, given that it seems exceedingly unlikely that anyone would use the in-kernel nfsd on a system trying to minimize kernel size, it still seems cleaner to just "select SPLICE_SYSCALL" from NFSD in Kconfig. That avoids making any changes at all to the nfsd source in this patch series.
- Josh Triplett
| |