diff options
author | rwatson <rwatson@FreeBSD.org> | 2004-05-31 00:59:10 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2004-05-31 00:59:10 +0000 |
commit | bbcb59f82d959b3188ef967e1a2b92738784acb7 (patch) | |
tree | 86d6be4316693376ea8678ac1db3c0190ba3ef2c /sys/nfsserver | |
parent | 77bfa810cc8670872b69e0edff8b53eda5193edf (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/nfsserver/nfs_srvsubs.c | 2 |
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; |