1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-10-18 02:19:39 +00:00

Revert "nfscl: Enable support for the Lookup+Open RPC"

This reverts commit 9792c7d3eb.

The email thread "panic: nfsv4root ref cnt cpuid=1"
on freebsd-fs@freebsd.org descibes
crashes that occurred for a NFSv4.1 client mount
using "oneopenown" where the same file is re-opened
many times by different processes.

The crashes appear to have been caused by the use
of the Lookup+Open RPC (which only happens for
mounts using the "oneopenown" option).
There appears to be a race between closure of the
open and the open acquired by the Lookup+Open RPC.

Since Lookup+Open RPCs are only an optimization
and can only be done for "oneopenown" at this time,
this patch reverts enabling of them.

It may be possible to fix the code so that
Lookup+Open works reliably, so the code is left
in place (although it will never be executed) for now.

Reported by:	J David <j.david.lists@gmail.com>
MFC after:	2 weeks
This commit is contained in:
Rick Macklem 2024-09-28 15:01:36 -07:00
parent 76c60597fa
commit 6df05714da

View File

@ -1309,6 +1309,11 @@ nfs_lookup(struct vop_lookup_args *ap)
}
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
@ -1328,6 +1333,7 @@ nfs_lookup(struct vop_lookup_args *ap)
openmode |= NFSV4OPEN_ACCESSWRITE;
}
NFSUNLOCKMNT(nmp);
#endif
newvp = NULLVP;
NFSINCRGLOBAL(nfsstatsv1.lookupcache_misses);