summaryrefslogtreecommitdiffstats
path: root/sys/nfs4client
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2008-07-22 21:27:22 +0000
committered <ed@FreeBSD.org>2008-07-22 21:27:22 +0000
commit1e4302f67a0633f03c9696f8aa7766fd9e23c79e (patch)
tree4fe889d36172171178190558d3aff2196e25613c /sys/nfs4client
parentdfa80a42e2ec65b03668ded45b03bb01e80460ed (diff)
downloadFreeBSD-src-1e4302f67a0633f03c9696f8aa7766fd9e23c79e.zip
FreeBSD-src-1e4302f67a0633f03c9696f8aa7766fd9e23c79e.tar.gz
Move the NFS/RPC code away from lbolt.
The kernel has a special wchan called `lbolt', which is triggered each second. It doesn't seem to be used a lot and it seems pretty redundant, because we can specify a timeout value to the *sleep() routines. In an attempt to eventually remove lbolt, make the NFS/RPC code use a timeout of `hz' when trying to reconnect. Only the TTY code (not MPSAFE TTY) and the VFS syncer seem to use lbolt now. Reviewed by: attilio, jhb Approved by: philip (mentor), alfred, dfr
Diffstat (limited to 'sys/nfs4client')
-rw-r--r--sys/nfs4client/nfs4_socket.c2
-rw-r--r--sys/nfs4client/nfs4_vfsops.c4
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/nfs4client/nfs4_socket.c b/sys/nfs4client/nfs4_socket.c
index c33bcbb..e5b2ab8 100644
--- a/sys/nfs4client/nfs4_socket.c
+++ b/sys/nfs4client/nfs4_socket.c
@@ -298,7 +298,7 @@ nfs4_request_mnt(struct nfsmount *nmp, struct mbuf *mrest, int procnum,
error = 0;
waituntil = time_second + trylater_delay;
while (time_second < waituntil)
- (void) tsleep(&lbolt, PSOCK, "nqnfstry", 0);
+ (void) tsleep(&fake_wchan, PSOCK, "nqnfstry", hz);
trylater_delay *= nfs_backoff[trylater_cnt];
if (trylater_cnt < NFS_NBACKOFF - 1)
trylater_cnt++;
diff --git a/sys/nfs4client/nfs4_vfsops.c b/sys/nfs4client/nfs4_vfsops.c
index 2531f66..d7d853c 100644
--- a/sys/nfs4client/nfs4_vfsops.c
+++ b/sys/nfs4client/nfs4_vfsops.c
@@ -127,6 +127,8 @@ static vfs_root_t nfs4_root;
static vfs_statfs_t nfs4_statfs;
static vfs_sync_t nfs4_sync;
+static int fake_wchan;
+
/*
* nfs vfs operations.
*/
@@ -374,7 +376,7 @@ nfs4_decode_args(struct nfsmount *nmp, struct nfs_args *argp)
if (nmp->nm_sotype == SOCK_DGRAM) {
while (nfs4_connect(nmp)) {
printf("nfs4_decode_args: retrying connect\n");
- (void)tsleep(&lbolt, PSOCK, "nfscon", 0);
+ (void)tsleep(&fake_wchan, PSOCK, "nfscon", hz);
}
}
}
OpenPOWER on IntegriCloud