summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorkmacy <kmacy@FreeBSD.org>2006-12-04 22:15:50 +0000
committerkmacy <kmacy@FreeBSD.org>2006-12-04 22:15:50 +0000
commitff9c89ea112656bad19d3fdda0f118752731a4df (patch)
tree346da6820b603b6b7e99242acfa1e724f7ff4406 /sys
parent865070817bf9de518246db766b412ba84b3aeec3 (diff)
downloadFreeBSD-src-ff9c89ea112656bad19d3fdda0f118752731a4df.zip
FreeBSD-src-ff9c89ea112656bad19d3fdda0f118752731a4df.tar.gz
Bug fix for obscenely large wait times on uncontested locks
if waittime was zero (the lock was uncontested) l->lpo_waittime in the hash table would not get initialized. Inspection prompted by questions from: Attilio Rao
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/subr_lock.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/kern/subr_lock.c b/sys/kern/subr_lock.c
index adf5e59..f55c85c 100644
--- a/sys/kern/subr_lock.c
+++ b/sys/kern/subr_lock.c
@@ -260,10 +260,10 @@ st char *file, int line)
l->lpo_filename = file;
l->lpo_lineno = line;
l->lpo_acqtime = nanoseconds();
- if (waittime) {
- if (l->lpo_acqtime > waittime)
- l->lpo_waittime = l->lpo_acqtime - waittime;
- }
+ if (waittime && (l->lpo_acqtime > waittime))
+ l->lpo_waittime = l->lpo_acqtime - waittime;
+ else
+ l->lpo_waittime = 0;
}
}
OpenPOWER on IntegriCloud