diff options
| author | Jim Rees <rees@FreeBSD.org> | 2004-03-25 21:48:09 +0000 |
|---|---|---|
| committer | Jim Rees <rees@FreeBSD.org> | 2004-03-25 21:48:09 +0000 |
| commit | f9955a5f5363f2936ee50338abecefd08ebaf892 (patch) | |
| tree | 0f26711985dd062f959b4e838a8d83a0dbd7e570 /sys/nfsclient/nfs_socket.c | |
| parent | aaf3e5b06564179b65e589879f95aea6e15bccc1 (diff) | |
Notes
Diffstat (limited to 'sys/nfsclient/nfs_socket.c')
| -rw-r--r-- | sys/nfsclient/nfs_socket.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/nfsclient/nfs_socket.c b/sys/nfsclient/nfs_socket.c index c70ab030243c..697478c71578 100644 --- a/sys/nfsclient/nfs_socket.c +++ b/sys/nfsclient/nfs_socket.c @@ -140,7 +140,7 @@ SYSCTL_INT(_vfs_nfs, OID_AUTO, bufpackets, CTLFLAG_RW, &nfs_bufpackets, 0, ""); #define NFS_MAXCWND (NFS_CWNDSCALE * 32) #define NFS_NBACKOFF 8 static int nfs_backoff[NFS_NBACKOFF] = { 2, 4, 8, 16, 32, 64, 128, 256, }; -struct callout_handle nfs_timer_handle; +struct callout nfs_callout; static int nfs_msg(struct thread *, char *, char *); static int nfs_rcvlock(struct nfsreq *); @@ -938,6 +938,8 @@ tryagain: * to put it LAST so timer finds oldest requests first. */ s = splsoftclock(); + if (TAILQ_EMPTY(&nfs_reqq)) + callout_reset(&nfs_callout, nfs_ticks, nfs_timer, NULL); TAILQ_INSERT_TAIL(&nfs_reqq, rep, r_chain); /* @@ -977,6 +979,8 @@ tryagain: */ s = splsoftclock(); TAILQ_REMOVE(&nfs_reqq, rep, r_chain); + if (TAILQ_EMPTY(&nfs_reqq)) + callout_stop(&nfs_callout); splx(s); /* @@ -1184,7 +1188,6 @@ nfs_timer(void *arg) } } splx(s); - nfs_timer_handle = timeout(nfs_timer, NULL, nfs_ticks); } /* |
