summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/nfs
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/fs/nfs')
-rw-r--r--usr/src/uts/common/fs/nfs/nfs4_client.c18
-rw-r--r--usr/src/uts/common/fs/nfs/nfs4_db.c9
-rw-r--r--usr/src/uts/common/fs/nfs/nfs4_deleg_ops.c6
-rw-r--r--usr/src/uts/common/fs/nfs/nfs4_recovery.c4
-rw-r--r--usr/src/uts/common/fs/nfs/nfs4_srv.c4
-rw-r--r--usr/src/uts/common/fs/nfs/nfs4_stub_vnops.c2
-rw-r--r--usr/src/uts/common/fs/nfs/nfs_client.c11
-rw-r--r--usr/src/uts/common/fs/nfs/nfs_dump.c9
8 files changed, 34 insertions, 29 deletions
diff --git a/usr/src/uts/common/fs/nfs/nfs4_client.c b/usr/src/uts/common/fs/nfs/nfs4_client.c
index 7335f83616..9ed69f7eed 100644
--- a/usr/src/uts/common/fs/nfs/nfs4_client.c
+++ b/usr/src/uts/common/fs/nfs/nfs4_client.c
@@ -1412,8 +1412,9 @@ nfs4_async_start(struct vfs *vfsp)
zthread_exit();
/* NOTREACHED */
}
- time_left = cv_timedwait(&mi->mi_async_work_cv,
- &mi->mi_async_lock, nfs_async_timeout + lbolt);
+ time_left = cv_reltimedwait(&mi->mi_async_work_cv,
+ &mi->mi_async_lock, nfs_async_timeout,
+ TR_CLOCK_TICK);
CALLB_CPR_SAFE_END(&cprinfo, &mi->mi_async_lock);
@@ -2619,6 +2620,7 @@ void
nfs4_write_error(vnode_t *vp, int error, cred_t *cr)
{
mntinfo4_t *mi;
+ clock_t now = ddi_get_lbolt();
mi = VTOMI4(vp);
/*
@@ -2640,7 +2642,7 @@ nfs4_write_error(vnode_t *vp, int error, cred_t *cr)
* messages from the same file system.
*/
if ((error != ENOSPC && error != EDQUOT) ||
- lbolt - mi->mi_printftime > 0) {
+ now - mi->mi_printftime > 0) {
zoneid_t zoneid = mi->mi_zone->zone_id;
#ifdef DEBUG
@@ -2661,7 +2663,7 @@ nfs4_write_error(vnode_t *vp, int error, cred_t *cr)
crgetuid(curthread->t_cred),
crgetgid(curthread->t_cred));
}
- mi->mi_printftime = lbolt +
+ mi->mi_printftime = now +
nfs_write_error_interval * hz;
}
sfh4_printfhandle(VTOR4(vp)->r_fh);
@@ -3225,8 +3227,8 @@ nfs4_renew_lease_thread(nfs4_server_t *sp)
mutex_enter(&cpr_lock);
CALLB_CPR_SAFE_BEGIN(&cpr_info);
mutex_exit(&cpr_lock);
- time_left = cv_timedwait(&sp->cv_thread_exit,
- &sp->s_lock, tick_delay + lbolt);
+ time_left = cv_reltimedwait(&sp->cv_thread_exit,
+ &sp->s_lock, tick_delay, TR_CLOCK_TICK);
mutex_enter(&cpr_lock);
CALLB_CPR_SAFE_END(&cpr_info, &cpr_lock);
mutex_exit(&cpr_lock);
@@ -3261,8 +3263,8 @@ nfs4_renew_lease_thread(nfs4_server_t *sp)
mutex_enter(&cpr_lock);
CALLB_CPR_SAFE_BEGIN(&cpr_info);
mutex_exit(&cpr_lock);
- time_left = cv_timedwait(&sp->cv_thread_exit, &sp->s_lock,
- tick_delay + lbolt);
+ time_left = cv_reltimedwait(&sp->cv_thread_exit, &sp->s_lock,
+ tick_delay, TR_CLOCK_TICK);
mutex_enter(&cpr_lock);
CALLB_CPR_SAFE_END(&cpr_info, &cpr_lock);
mutex_exit(&cpr_lock);
diff --git a/usr/src/uts/common/fs/nfs/nfs4_db.c b/usr/src/uts/common/fs/nfs/nfs4_db.c
index 13accb9eac..98685a5938 100644
--- a/usr/src/uts/common/fs/nfs/nfs4_db.c
+++ b/usr/src/uts/common/fs/nfs/nfs4_db.c
@@ -804,7 +804,7 @@ static void
reaper_thread(caddr_t *arg)
{
rfs4_table_t *table = (rfs4_table_t *)arg;
- clock_t rc, time;
+ clock_t rc, time, wakeup;
NFS4_DEBUG(table->dbt_debug,
(CE_NOTE, "rfs4_reaper_thread starting for %s", table->dbt_name));
@@ -813,12 +813,13 @@ reaper_thread(caddr_t *arg)
callb_generic_cpr, "nfsv4Reaper");
time = MIN(rfs4_reap_interval, table->dbt_max_cache_time);
+ wakeup = SEC_TO_TICK(time);
+
mutex_enter(&table->dbt_reaper_cv_lock);
do {
CALLB_CPR_SAFE_BEGIN(&table->dbt_reaper_cpr_info);
- rc = cv_timedwait_sig(&table->dbt_reaper_wait,
- &table->dbt_reaper_cv_lock,
- lbolt + SEC_TO_TICK(time));
+ rc = cv_reltimedwait_sig(&table->dbt_reaper_wait,
+ &table->dbt_reaper_cv_lock, wakeup, TR_CLOCK_TICK);
CALLB_CPR_SAFE_END(&table->dbt_reaper_cpr_info,
&table->dbt_reaper_cv_lock);
rfs4_dbe_reap(table, table->dbt_max_cache_time, 0);
diff --git a/usr/src/uts/common/fs/nfs/nfs4_deleg_ops.c b/usr/src/uts/common/fs/nfs/nfs4_deleg_ops.c
index 696e060c63..bc29ee8ae7 100644
--- a/usr/src/uts/common/fs/nfs/nfs4_deleg_ops.c
+++ b/usr/src/uts/common/fs/nfs/nfs4_deleg_ops.c
@@ -84,7 +84,7 @@ recall_all_delegations(rfs4_file_t *fp, bool_t trunc, caller_context_t *ct)
while (fp->rf_dinfo.rd_dtype != OPEN_DELEGATE_NONE) {
rc = rfs4_dbe_twait(fp->rf_dbe,
- lbolt + SEC_TO_TICK(rfs4_lease_time));
+ ddi_get_lbolt() + SEC_TO_TICK(rfs4_lease_time));
if (rc == -1) { /* timed out */
rfs4_dbe_unlock(fp->rf_dbe);
rfs4_recall_deleg(fp, trunc, NULL);
@@ -377,7 +377,7 @@ deleg_rd_vnevent(femarg_t *arg, vnevent_t vnevent, vnode_t *dvp, char *name,
rfs4_dbe_lock(fp->rf_dbe);
while (fp->rf_dinfo.rd_dtype != OPEN_DELEGATE_NONE) {
rc = rfs4_dbe_twait(fp->rf_dbe,
- lbolt + SEC_TO_TICK(rfs4_lease_time));
+ ddi_get_lbolt() + SEC_TO_TICK(rfs4_lease_time));
if (rc == -1) { /* timed out */
rfs4_dbe_unlock(fp->rf_dbe);
rfs4_recall_deleg(fp, trunc, NULL);
@@ -414,7 +414,7 @@ deleg_wr_vnevent(femarg_t *arg, vnevent_t vnevent, vnode_t *dvp, char *name,
rfs4_dbe_lock(fp->rf_dbe);
while (fp->rf_dinfo.rd_dtype != OPEN_DELEGATE_NONE) {
rc = rfs4_dbe_twait(fp->rf_dbe,
- lbolt + SEC_TO_TICK(rfs4_lease_time));
+ ddi_get_lbolt() + SEC_TO_TICK(rfs4_lease_time));
if (rc == -1) { /* timed out */
rfs4_dbe_unlock(fp->rf_dbe);
rfs4_recall_deleg(fp, trunc, NULL);
diff --git a/usr/src/uts/common/fs/nfs/nfs4_recovery.c b/usr/src/uts/common/fs/nfs/nfs4_recovery.c
index f107519eda..9d2ef14175 100644
--- a/usr/src/uts/common/fs/nfs/nfs4_recovery.c
+++ b/usr/src/uts/common/fs/nfs/nfs4_recovery.c
@@ -2479,8 +2479,8 @@ recov_openfiles(recov_info_t *recovp, nfs4_server_t *sp)
mutex_enter(&sp->s_lock);
if ((sp->s_flags & (N4S_CB_PINGED | N4S_CB_WAITER)) == 0) {
sp->s_flags |= N4S_CB_WAITER;
- (void) cv_timedwait(&sp->wait_cb_null, &sp->s_lock,
- (lbolt + drv_usectohz(N4S_CB_PAUSE_TIME)));
+ (void) cv_reltimedwait(&sp->wait_cb_null, &sp->s_lock,
+ drv_usectohz(N4S_CB_PAUSE_TIME), TR_CLOCK_TICK);
}
mutex_exit(&sp->s_lock);
diff --git a/usr/src/uts/common/fs/nfs/nfs4_srv.c b/usr/src/uts/common/fs/nfs/nfs4_srv.c
index 27eb457b05..d7f71fa380 100644
--- a/usr/src/uts/common/fs/nfs/nfs4_srv.c
+++ b/usr/src/uts/common/fs/nfs/nfs4_srv.c
@@ -597,7 +597,7 @@ void
rfs4_grace_start(rfs4_servinst_t *sip)
{
rw_enter(&sip->rwlock, RW_WRITER);
- sip->start_time = (time_t)TICK_TO_SEC(lbolt);
+ sip->start_time = (time_t)TICK_TO_SEC(ddi_get_lbolt());
sip->grace_period = rfs4_grace_period;
rw_exit(&sip->rwlock);
}
@@ -630,7 +630,7 @@ rfs4_servinst_in_grace(rfs4_servinst_t *sip)
grace_expiry = sip->start_time + sip->grace_period;
rw_exit(&sip->rwlock);
- return (((time_t)TICK_TO_SEC(lbolt)) < grace_expiry);
+ return (((time_t)TICK_TO_SEC(ddi_get_lbolt())) < grace_expiry);
}
int
diff --git a/usr/src/uts/common/fs/nfs/nfs4_stub_vnops.c b/usr/src/uts/common/fs/nfs/nfs4_stub_vnops.c
index e26f15264c..37bc502b0b 100644
--- a/usr/src/uts/common/fs/nfs/nfs4_stub_vnops.c
+++ b/usr/src/uts/common/fs/nfs/nfs4_stub_vnops.c
@@ -2370,7 +2370,7 @@ nfs4_ephemeral_harvester(nfs4_trigger_globals_t *ntg)
zone_t *zone = curproc->p_zone;
for (;;) {
- timeleft = zone_status_timedwait(zone, lbolt +
+ timeleft = zone_status_timedwait(zone, ddi_get_lbolt() +
nfs4_trigger_thread_timer * hz, ZONE_IS_SHUTTING_DOWN);
/*
diff --git a/usr/src/uts/common/fs/nfs/nfs_client.c b/usr/src/uts/common/fs/nfs/nfs_client.c
index 3c5d02fad9..a32d730ea7 100644
--- a/usr/src/uts/common/fs/nfs/nfs_client.c
+++ b/usr/src/uts/common/fs/nfs/nfs_client.c
@@ -2050,8 +2050,9 @@ nfs_async_start(struct vfs *vfsp)
zthread_exit();
/* NOTREACHED */
}
- time_left = cv_timedwait(&mi->mi_async_work_cv,
- &mi->mi_async_lock, nfs_async_timeout + lbolt);
+ time_left = cv_reltimedwait(&mi->mi_async_work_cv,
+ &mi->mi_async_lock, nfs_async_timeout,
+ TR_CLOCK_TICK);
CALLB_CPR_SAFE_END(&cprinfo, &mi->mi_async_lock);
@@ -2554,6 +2555,7 @@ void
nfs_write_error(vnode_t *vp, int error, cred_t *cr)
{
mntinfo_t *mi;
+ clock_t now;
mi = VTOMI(vp);
/*
@@ -2567,8 +2569,9 @@ nfs_write_error(vnode_t *vp, int error, cred_t *cr)
* No use in flooding the console with ENOSPC
* messages from the same file system.
*/
+ now = ddi_get_lbolt();
if ((error != ENOSPC && error != EDQUOT) ||
- lbolt - mi->mi_printftime > 0) {
+ now - mi->mi_printftime > 0) {
zoneid_t zoneid = mi->mi_zone->zone_id;
#ifdef DEBUG
@@ -2588,7 +2591,7 @@ nfs_write_error(vnode_t *vp, int error, cred_t *cr)
MSG("^User: userid=%d, groupid=%d\n"),
crgetuid(CRED()), crgetgid(CRED()));
}
- mi->mi_printftime = lbolt +
+ mi->mi_printftime = now +
nfs_write_error_interval * hz;
}
nfs_printfhandle(&VTOR(vp)->r_fh);
diff --git a/usr/src/uts/common/fs/nfs/nfs_dump.c b/usr/src/uts/common/fs/nfs/nfs_dump.c
index 98a69cca50..9b570716d8 100644
--- a/usr/src/uts/common/fs/nfs/nfs_dump.c
+++ b/usr/src/uts/common/fs/nfs/nfs_dump.c
@@ -19,16 +19,15 @@
* CDDL HEADER END
*/
/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
/*
* Dump memory to NFS swap file after a panic.
* We have no timeouts, context switches, etc.
*/
+
#include <rpc/types.h>
#include <sys/param.h>
#include <sys/errno.h>
@@ -452,7 +451,7 @@ nd_get_reply(TIUSER *tiptr, XDR *xdrp, uint32_t call_xid, int *badmsg)
static int
nd_poll(TIUSER *tiptr, int retry, int *eventp)
{
- clock_t start_bolt = lbolt;
+ clock_t start_bolt = ddi_get_lbolt();
clock_t timout = TIMEOUT * (retry + 1);
int error;
@@ -460,7 +459,7 @@ nd_poll(TIUSER *tiptr, int retry, int *eventp)
*eventp = 0;
- while (!*eventp && ((lbolt - start_bolt) < timout)) {
+ while (!*eventp && ((ddi_get_lbolt() - start_bolt) < timout)) {
/*
* Briefly enable interrupts before checking for a reply;
* the network transports do not yet support do_polled_io.