summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2006-11-24 11:53:16 +0000
committerrwatson <rwatson@FreeBSD.org>2006-11-24 11:53:16 +0000
commit65d3526a649a6b8c43d95db3632ccd500d0435e7 (patch)
treee361363025d1a88f47fe0ef4f20658e774c2ac7d /share
parent3caf2aa43d126fdf7524e1e18b68a6859dcbbf41 (diff)
downloadFreeBSD-src-65d3526a649a6b8c43d95db3632ccd500d0435e7.zip
FreeBSD-src-65d3526a649a6b8c43d95db3632ccd500d0435e7.tar.gz
Push Giant a bit further off the NFS server in a number of straight
forward cases by converting from unconditional acquisition of Giant around vnode operations to conditional acquisition: - Remove nfsrv_access_withgiant(), and cause nfsrv_access() to now assert that Giant will be held if it is required for the vnode. - Add nfsrv_fhtovp_locked(), which will drop the NFS server lock if required, and modify nfsrv_fhtovp() to conditionally acquire Giant if required. - In the VOP's not dealing with more than one vnode at a time (i.e., not involving a lookup), conditionally acquire Giant. This removes Giant use for MPSAFE file systems for a number of quite important RPCs, including getattr, read, write. It leaves unconditional Giant acquisitions in vnode operations that interact with the name space or more than one vnode at a time as these require further work. Tested by: kris Reviewed by: kib
Diffstat (limited to 'share')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud