]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
nfscl: Add a Lookup+Open RPC for NFSv4.1/4.2
authorRick Macklem <rmacklem@FreeBSD.org>
Thu, 12 Aug 2021 01:49:26 +0000 (18:49 -0700)
committerRick Macklem <rmacklem@FreeBSD.org>
Thu, 12 Aug 2021 01:49:26 +0000 (18:49 -0700)
commit3ad1e1c1ce2042bb45a518e28c881e5bc4491117
tree991029df0eac4e1324dd96442c5e8f079a167742
parent5ae48eb998ad5d41118d2df62cf28b92d6864e24
nfscl: Add a Lookup+Open RPC for NFSv4.1/4.2

This patch adds a Lookup+Open compound RPC to the NFSv4.1/4.2
NFS client, which can be used by nfs_lookup() so that a
subsequent Open RPC is not required.
It uses the cn_flags OPENREAD, OPENWRITE added by commit c18c74a87c15.
This reduced the number of RPCs by about 15% for a kernel
build over NFS.

For now, use of Lookup+Open is only done when the "oneopenown"
mount option is used.  It may be possible for Lookup+Open to
be used for non-oneopenown NFSv4.1/4.2 mounts, but that will
require extensive further testing to determine if it works.

While here, I've added the changes to the nfscommon module
that are needed to implement the Deallocate NFSv4.2 operation.
This avoids needing another cycle of changes to the internal
KAPI between the NFS modules.

This commit has changed the internal KAPI between the NFS
modules and, as such, all need to be rebuilt from sources.
I have not bumped __FreeBSD_version, since it was bumped a
few days ago.
sys/fs/nfs/nfs_commonsubs.c
sys/fs/nfs/nfs_var.h
sys/fs/nfs/nfsport.h
sys/fs/nfs/nfsproto.h
sys/fs/nfsclient/nfs_clrpcops.c
sys/fs/nfsclient/nfs_clstate.c
sys/fs/nfsclient/nfs_clvnops.c