diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2018-07-27 17:19:10 +0200 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2018-08-09 22:11:21 +0200 |
commit | 11b4d66ea3313d9b03a83b80458ddee64990e3c3 (patch) | |
tree | d2558f204fe319fc365c07756bfd48a055a0580d /.gitignore | |
parent | NFSD: Refactor the generic write vector fill helper (diff) | |
download | linux-11b4d66ea3313d9b03a83b80458ddee64990e3c3.tar.xz linux-11b4d66ea3313d9b03a83b80458ddee64990e3c3.zip |
NFSD: Handle full-length symlinks
I've given up on the idea of zero-copy handling of SYMLINK on the
server side. This is because the Linux VFS symlink API requires the
symlink pathname to be in a NUL-terminated kmalloc'd buffer. The
NUL-termination is going to be problematic (watching out for
landing on a page boundary and dealing with a 4096-byte pathname).
I don't believe that SYMLINK creation is on a performance path or is
requested frequently enough that it will cause noticeable CPU cache
pollution due to data copies.
There will be two places where a transport callout will be necessary
to fill in the rqstp: one will be in the svc_fill_symlink_pathname()
helper that is used by NFSv2 and NFSv3, and the other will be in
nfsd4_decode_create().
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to '.gitignore')
0 files changed, 0 insertions, 0 deletions