summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_sx.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2001-08-23 17:57:37 +0000
committerjhb <jhb@FreeBSD.org>2001-08-23 17:57:37 +0000
commite84a42cf98ec1a503ce10bb3ca319e3e1aa5f514 (patch)
treea621791a9337601833298d222aef5ac2b39ef245 /sys/kern/kern_sx.c
parenta480a6737dc604419b27b637a6deb6b419674e7e (diff)
downloadFreeBSD-src-e84a42cf98ec1a503ce10bb3ca319e3e1aa5f514.zip
FreeBSD-src-e84a42cf98ec1a503ce10bb3ca319e3e1aa5f514.tar.gz
Clear the sx_xholder pointer when downgrading an exclusive lock.
Diffstat (limited to 'sys/kern/kern_sx.c')
-rw-r--r--sys/kern/kern_sx.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/kern/kern_sx.c b/sys/kern/kern_sx.c
index e36dda2..212b825 100644
--- a/sys/kern/kern_sx.c
+++ b/sys/kern/kern_sx.c
@@ -283,6 +283,7 @@ _sx_downgrade(struct sx *sx, const char *file, int line)
WITNESS_UNLOCK(&sx->sx_object, LOP_EXCLUSIVE, file, line);
sx->sx_cnt = 1;
+ sx->sx_xholder = NULL;
if (sx->sx_shrd_wcnt > 0)
cv_broadcast(&sx->sx_shrd_cv);
OpenPOWER on IntegriCloud