nfscl: Disable use of the LookupOpen RPC

The LookupOpen RPC reduces the number of Open RPCs
needed.  Unfortunately, it breaks certain software
builds over NFS, so disable it until this is fixed.

The LookupOpen RPC is only used for NFSv4.1/4.2
mounts when the "oneopenown" mount option is
specified, so this should not affect many users.
This commit is contained in:
Rick Macklem 2021-11-27 15:34:45 -08:00
parent e511bd1406
commit c3134a6af0

View File

@ -1322,13 +1322,18 @@ nfs_lookup(struct vop_lookup_args *ap)
cache_purge_negative(dvp);
}
openmode = 0;
#if 0
/*
* The use of LookupOpen breaks some builds. It is disabled
* until that is fixed.
*/
/*
* If this an NFSv4.1/4.2 mount using the "oneopenown" mount
* option, it is possible to do the Open operation in the same
* compound as Lookup, so long as delegations are not being
* issued. This saves doing a separate RPC for Open.
*/
openmode = 0;
NFSLOCKMNT(nmp);
if (NFSHASNFSV4N(nmp) && NFSHASONEOPENOWN(nmp) &&
(nmp->nm_privflag & NFSMNTP_DELEGISSUED) == 0 &&
@ -1340,6 +1345,7 @@ nfs_lookup(struct vop_lookup_args *ap)
openmode |= NFSV4OPEN_ACCESSWRITE;
}
NFSUNLOCKMNT(nmp);
#endif
newvp = NULLVP;
NFSINCRGLOBAL(nfsstatsv1.lookupcache_misses);