diff options
author | J. Bruce Fields <bfields@redhat.com> | 2021-04-16 14:00:15 -0400 |
---|---|---|
committer | Chuck Lever <chuck.lever@oracle.com> | 2021-04-19 16:41:33 -0400 |
commit | f9b60e2209213fdfcc504ba25a404977c5d08b77 (patch) | |
tree | c57ae4561eb0adf4731cd245667fee5022fa2341 /fs/nfsd/state.h | |
parent | 217fd6f625af591e2866bebb8cda778cf85bea2e (diff) | |
download | linux-f9b60e2209213fdfcc504ba25a404977c5d08b77.tar.gz linux-f9b60e2209213fdfcc504ba25a404977c5d08b77.tar.bz2 linux-f9b60e2209213fdfcc504ba25a404977c5d08b77.zip |
nfsd: hash nfs4_files by inode number
The nfs4_file structure is per-filehandle, not per-inode, because the
spec requires open and other state to be per filehandle.
But it will turn out to be convenient for nfs4_files associated with the
same inode to be hashed to the same bucket, so let's hash on the inode
instead of the filehandle.
Filehandle aliasing is rare, so that shouldn't have much performance
impact.
(If you have a ton of exported filesystems, though, and all of them have
a root with inode number 2, could that get you an overlong hash chain?
Perhaps this (and the v4 open file cache) should be hashed on the inode
pointer instead.)
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'fs/nfsd/state.h')
-rw-r--r-- | fs/nfsd/state.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/fs/nfsd/state.h b/fs/nfsd/state.h index 54cab651ac1d..61a2d95d7923 100644 --- a/fs/nfsd/state.h +++ b/fs/nfsd/state.h @@ -669,7 +669,6 @@ extern struct nfs4_client_reclaim *nfs4_client_to_reclaim(struct xdr_netobj name struct xdr_netobj princhash, struct nfsd_net *nn); extern bool nfs4_has_reclaimed_state(struct xdr_netobj name, struct nfsd_net *nn); -struct nfs4_file *find_file(struct knfsd_fh *fh); void put_nfs4_file(struct nfs4_file *fi); extern void nfs4_put_copy(struct nfsd4_copy *copy); extern struct nfsd4_copy * |