From acf840c4bda2466fdc7d001d3c664f97572130e3 Mon Sep 17 00:00:00 2001 From: Attilio Rao Date: Tue, 29 May 2007 19:34:32 +0000 Subject: [PATCH] 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) --- sys/kern/kern_sx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/kern_sx.c b/sys/kern/kern_sx.c index ea7d03641cb3..2a25fdcbe0fd 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); }