summaryrefslogtreecommitdiffstats
path: root/sys/nfsserver/nfs_srvsubs.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2004-05-31 00:59:10 +0000
committerrwatson <rwatson@FreeBSD.org>2004-05-31 00:59:10 +0000
commitbbcb59f82d959b3188ef967e1a2b92738784acb7 (patch)
tree86d6be4316693376ea8678ac1db3c0190ba3ef2c /sys/nfsserver/nfs_srvsubs.c
parent77bfa810cc8670872b69e0edff8b53eda5193edf (diff)
downloadFreeBSD-src-bbcb59f82d959b3188ef967e1a2b92738784acb7.zip
FreeBSD-src-bbcb59f82d959b3188ef967e1a2b92738784acb7.tar.gz
The NFS server modevent code manually patches the system call table to
install nfssvc(). It also updates the argument count, but did so without setting SYF_MPSAFE, effectively removing the MPSAFE flag even when syscalls.master indicates it doesn't require Giant. This change forces the modevent to set MPSAFE as a flag to its internal notion of an argument coutn. Note: this duplication of information is a bad thing, but is a more general problem I'm not currently willing to address.
Diffstat (limited to 'sys/nfsserver/nfs_srvsubs.c')
-rw-r--r--sys/nfsserver/nfs_srvsubs.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/nfsserver/nfs_srvsubs.c b/sys/nfsserver/nfs_srvsubs.c
index 7217150..f8d9e4b 100644
--- a/sys/nfsserver/nfs_srvsubs.c
+++ b/sys/nfsserver/nfs_srvsubs.c
@@ -551,7 +551,7 @@ nfsrv_modevent(module_t mod, int type, void *data)
nfsrv_timer(0);
nfs_prev_nfssvc_sy_narg = sysent[SYS_nfssvc].sy_narg;
- sysent[SYS_nfssvc].sy_narg = 2;
+ sysent[SYS_nfssvc].sy_narg = 2 | SYF_MPSAFE;
nfs_prev_nfssvc_sy_call = sysent[SYS_nfssvc].sy_call;
sysent[SYS_nfssvc].sy_call = (sy_call_t *)nfssvc;
break;
OpenPOWER on IntegriCloud