summaryrefslogtreecommitdiffstats
path: root/sys/nfsclient/nfs_subs.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2004-12-06 08:31:32 +0000
committerphk <phk@FreeBSD.org>2004-12-06 08:31:32 +0000
commit753d615ec01e09d4509ce777a880341ea6feb39d (patch)
tree93ace8ca23553123c0dfd5066b9419aea9adb71e /sys/nfsclient/nfs_subs.c
parentb62f254b426d1e3871d394d61c4ae1997fca0a70 (diff)
downloadFreeBSD-src-753d615ec01e09d4509ce777a880341ea6feb39d.zip
FreeBSD-src-753d615ec01e09d4509ce777a880341ea6feb39d.tar.gz
For reasons unknown, the nfs locking code used a fifo to send requests to
userland and a dedicated system call to get replies. The vnode-bypass of fifos broke this into a panic. Ditch all the magic and create a device /dev/nfslock instead, and use that for both directions apart from the shorter path, this is also faster because the device driver runs Giant free using the vnode bypass. Noticed by: marcel
Diffstat (limited to 'sys/nfsclient/nfs_subs.c')
-rw-r--r--sys/nfsclient/nfs_subs.c10
1 files changed, 0 insertions, 10 deletions
diff --git a/sys/nfsclient/nfs_subs.c b/sys/nfsclient/nfs_subs.c
index 986c74d..8467b76 100644
--- a/sys/nfsclient/nfs_subs.c
+++ b/sys/nfsclient/nfs_subs.c
@@ -96,9 +96,6 @@ int nfs_pbuf_freecnt = -1; /* start out unlimited */
struct nfs_reqq nfs_reqq;
struct nfs_bufq nfs_bufq;
-static int nfs_prev_nfsclnt_sy_narg;
-static sy_call_t *nfs_prev_nfsclnt_sy_call;
-
/*
* and the reverse mapping from generic to Version 2 procedure numbers
*/
@@ -416,11 +413,6 @@ nfs_init(struct vfsconf *vfsp)
TAILQ_INIT(&nfs_reqq);
callout_init(&nfs_callout, 0);
- nfs_prev_nfsclnt_sy_narg = sysent[SYS_nfsclnt].sy_narg;
- sysent[SYS_nfsclnt].sy_narg = 2;
- nfs_prev_nfsclnt_sy_call = sysent[SYS_nfsclnt].sy_call;
- sysent[SYS_nfsclnt].sy_call = (sy_call_t *)nfsclnt;
-
nfs_pbuf_freecnt = nswbuf / 2 + 1;
return (0);
@@ -432,8 +424,6 @@ nfs_uninit(struct vfsconf *vfsp)
int i;
callout_stop(&nfs_callout);
- sysent[SYS_nfsclnt].sy_narg = nfs_prev_nfsclnt_sy_narg;
- sysent[SYS_nfsclnt].sy_call = nfs_prev_nfsclnt_sy_call;
KASSERT(TAILQ_EMPTY(&nfs_reqq),
("nfs_uninit: request queue not empty"));
OpenPOWER on IntegriCloud