From bbcb59f82d959b3188ef967e1a2b92738784acb7 Mon Sep 17 00:00:00 2001 From: rwatson Date: Mon, 31 May 2004 00:59:10 +0000 Subject: 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. --- sys/nfsserver/nfs_srvsubs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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; -- cgit v1.1