Index: nfs.h =================================================================== RCS file: /home/ncvs/src/sys/nfsclient/nfs.h,v retrieving revision 1.77 diff -u -r1.77 nfs.h --- nfs.h 27 Feb 2004 19:37:43 -0000 1.77 +++ nfs.h 9 Mar 2004 04:09:46 -0000 @@ -136,7 +136,7 @@ extern struct uma_zone *nfsmount_zone; -extern struct callout_handle nfs_timer_handle; +extern struct callout nfs_callout; extern struct nfsstats nfsstats; extern int nfs_numasync; Index: nfs_socket.c =================================================================== RCS file: /home/ncvs/src/sys/nfsclient/nfs_socket.c,v retrieving revision 1.101 diff -u -r1.101 nfs_socket.c --- nfs_socket.c 14 Nov 2003 20:54:08 -0000 1.101 +++ nfs_socket.c 9 Mar 2004 04:09:48 -0000 @@ -140,7 +140,7 @@ #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 *); @@ -930,6 +930,8 @@ * 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); /* @@ -969,6 +971,8 @@ */ s = splsoftclock(); TAILQ_REMOVE(&nfs_reqq, rep, r_chain); + if (TAILQ_EMPTY(&nfs_reqq)) + callout_stop(&nfs_callout); splx(s); /* @@ -1176,7 +1180,6 @@ } } splx(s); - nfs_timer_handle = timeout(nfs_timer, NULL, nfs_ticks); } /* Index: nfs_subs.c =================================================================== RCS file: /home/ncvs/src/sys/nfsclient/nfs_subs.c,v retrieving revision 1.122 diff -u -r1.122 nfs_subs.c --- nfs_subs.c 22 Nov 2003 02:21:49 -0000 1.122 +++ nfs_subs.c 9 Mar 2004 04:09:49 -0000 @@ -418,8 +418,7 @@ * Initialize reply list and start timer */ TAILQ_INIT(&nfs_reqq); - - nfs_timer(0); + callout_init(&nfs_callout, 0); nfs_prev_nfsclnt_sy_narg = sysent[SYS_nfsclnt].sy_narg; sysent[SYS_nfsclnt].sy_narg = 2; @@ -435,7 +434,7 @@ nfs_uninit(struct vfsconf *vfsp) { - untimeout(nfs_timer, (void *)NULL, nfs_timer_handle); + callout_stop(&nfs_callout); sysent[SYS_nfsclnt].sy_narg = nfs_prev_nfsclnt_sy_narg; sysent[SYS_nfsclnt].sy_call = nfs_prev_nfsclnt_sy_call; return (0);