summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_sx.c
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2007-05-29 19:34:32 +0000
committerattilio <attilio@FreeBSD.org>2007-05-29 19:34:32 +0000
commit8ab4fe4253fdd4d6abaacf555e43fc6a18d95d9f (patch)
tree2373876efc7dbb5fe5091c1e3f67cf38a5f35ea5 /sys/kern/kern_sx.c
parent164793c4bd56dc10ef6d3014c3f5bd335a7a04b1 (diff)
downloadFreeBSD-src-8ab4fe4253fdd4d6abaacf555e43fc6a18d95d9f.zip
FreeBSD-src-8ab4fe4253fdd4d6abaacf555e43fc6a18d95d9f.tar.gz
Add a small fix for lock profiling in sx locks.
"0" cannot be a correct value since when the function is entered at least one shared holder must be present and since we want the last one "1" is the correct value. Note that lock_profiling for sx locks is far from being perfect. Expect further fixes for that. Approved by: jeff (mentor)
Diffstat (limited to 'sys/kern/kern_sx.c')
-rw-r--r--sys/kern/kern_sx.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/kern_sx.c b/sys/kern/kern_sx.c
index ea7d036..2a25fdc 100644
--- a/sys/kern/kern_sx.c
+++ b/sys/kern/kern_sx.c
@@ -277,7 +277,7 @@ _sx_sunlock(struct sx *sx, const char *file, int line)
curthread->td_locks--;
WITNESS_UNLOCK(&sx->lock_object, 0, file, line);
LOCK_LOG_LOCK("SUNLOCK", &sx->lock_object, 0, 0, file, line);
- if (SX_SHARERS(sx->sx_lock) == 0)
+ if (SX_SHARERS(sx->sx_lock) == 1)
lock_profile_release_lock(&sx->lock_object);
__sx_sunlock(sx, file, line);
}
OpenPOWER on IntegriCloud