]> Git Repo - linux.git/commit
nfsd: add nfsd_file_acquire_local()
authorNeilBrown <[email protected]>
Thu, 5 Sep 2024 19:09:43 +0000 (15:09 -0400)
committerAnna Schumaker <[email protected]>
Mon, 23 Sep 2024 19:03:30 +0000 (15:03 -0400)
commitc63f0e48febfaea8a3cd4146abda9cc7a329b0e3
tree721201b13bb9a9af58831326dcea304d4d66c784
parent5e66d2d92a1c331ed86d943ce3703c654876b20a
nfsd: add nfsd_file_acquire_local()

nfsd_file_acquire_local() can be used to look up a file by filehandle
without having a struct svc_rqst.  This can be used by NFS LOCALIO to
allow the NFS client to bypass the NFS protocol to directly access a
file provided by the NFS server which is running in the same kernel.

In nfsd_file_do_acquire() care is taken to always use fh_verify() if
rqstp is not NULL (as is the case for non-LOCALIO callers).  Otherwise
the non-LOCALIO callers will not supply the correct and required
arguments to __fh_verify (e.g. gssclient isn't passed).

Introduce fh_verify_local() wrapper around __fh_verify to make it
clear that LOCALIO is intended caller.

Also, use GC for nfsd_file returned by nfsd_file_acquire_local.  GC
offers performance improvements if/when a file is reopened before
launderette cleans it from the filecache's LRU.

Suggested-by: Jeff Layton <[email protected]> # use filecache's GC
Signed-off-by: NeilBrown <[email protected]>
Co-developed-by: Mike Snitzer <[email protected]>
Signed-off-by: Mike Snitzer <[email protected]>
Signed-off-by: Chuck Lever <[email protected]>
Reviewed-by: Jeff Layton <[email protected]>
Signed-off-by: Anna Schumaker <[email protected]>
fs/nfsd/filecache.c
fs/nfsd/filecache.h
fs/nfsd/nfsfh.c
fs/nfsd/nfsfh.h
This page took 0.054305 seconds and 4 git commands to generate.