From 73dd2783d7b73350ca047bf0bea2895e152eca71 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Thu, 1 Apr 2010 23:11:42 -0400 Subject: [PATCH 1/1] freebsd glock assertions assert we don't try to recurse on the glock Change-Id: Iecf0f869e4a541a0b5322def47c944dec310ae3e Reviewed-on: http://gerrit.openafs.org/1683 Reviewed-by: Benjamin Kaduk Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- src/afs/FBSD/osi_machdep.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/afs/FBSD/osi_machdep.h b/src/afs/FBSD/osi_machdep.h index 2847de7..dd5e965 100644 --- a/src/afs/FBSD/osi_machdep.h +++ b/src/afs/FBSD/osi_machdep.h @@ -116,8 +116,17 @@ extern void osi_fbsd_free(void *p); vn_rdwr((rw),(gp),(base),(len),(offset),(segflg),(unit),(cred),(cred),(aresid), curthread) extern struct mtx afs_global_mtx; extern struct thread *afs_global_owner; -#define AFS_GLOCK() mtx_lock(&afs_global_mtx) -#define AFS_GUNLOCK() mtx_unlock(&afs_global_mtx) +#define AFS_GLOCK() \ + do { \ + mtx_assert(&afs_global_mtx, (MA_NOTOWNED)); \ + mtx_lock(&afs_global_mtx); \ + mtx_assert(&afs_global_mtx, (MA_OWNED|MA_NOTRECURSED)); \ + } while (0) +#define AFS_GUNLOCK() \ + do { \ + mtx_assert(&afs_global_mtx, (MA_OWNED|MA_NOTRECURSED)); \ + mtx_unlock(&afs_global_mtx); \ + } while (0) #define ISAFS_GLOCK() (mtx_owned(&afs_global_mtx)) # if defined(AFS_FBSD80_ENV) && defined(WITNESS) # define osi_InitGlock() \ -- 1.9.4