aboutsummaryrefslogtreecommitdiff
path: root/sys/cddl
diff options
context:
space:
mode:
authorPawel Jakub Dawidek <pjd@FreeBSD.org>2007-05-26 21:37:14 +0000
committerPawel Jakub Dawidek <pjd@FreeBSD.org>2007-05-26 21:37:14 +0000
commit0d99488ded453b04773f7b11f284d835ff02156d (patch)
treef3c1c336b2992ffb70a0a664fb9743635f0675c3 /sys/cddl
parenta1cdbf3265d21217b64f760cf6e645e834c89c8e (diff)
Notes
Diffstat (limited to 'sys/cddl')
-rw-r--r--sys/cddl/compat/opensolaris/sys/mutex.h8
-rw-r--r--sys/cddl/compat/opensolaris/sys/rwlock.h8
2 files changed, 14 insertions, 2 deletions
diff --git a/sys/cddl/compat/opensolaris/sys/mutex.h b/sys/cddl/compat/opensolaris/sys/mutex.h
index dac724953c2a..d7543af4363e 100644
--- a/sys/cddl/compat/opensolaris/sys/mutex.h
+++ b/sys/cddl/compat/opensolaris/sys/mutex.h
@@ -46,12 +46,18 @@ typedef enum {
typedef struct sx kmutex_t;
+#ifndef DEBUG
+#define MUTEX_FLAGS (SX_DUPOK | SX_NOWITNESS)
+#else
+#define MUTEX_FLAGS (SX_DUPOK)
+#endif
+
#define mutex_init(lock, desc, type, arg) do { \
ASSERT((type) == MUTEX_DEFAULT); \
KASSERT(((lock)->lock_object.lo_flags & LO_ALLMASK) != \
LO_EXPECTED, ("lock %s already initialized", #lock)); \
bzero((lock), sizeof(struct sx)); \
- sx_init_flags((lock), "zfs:" #lock, SX_DUPOK); \
+ sx_init_flags((lock), "zfs:" #lock, MUTEX_FLAGS); \
} while (0)
#define mutex_destroy(lock) sx_destroy(lock)
#define mutex_enter(lock) sx_xlock(lock)
diff --git a/sys/cddl/compat/opensolaris/sys/rwlock.h b/sys/cddl/compat/opensolaris/sys/rwlock.h
index 6facd7a7b5eb..e87717566c15 100644
--- a/sys/cddl/compat/opensolaris/sys/rwlock.h
+++ b/sys/cddl/compat/opensolaris/sys/rwlock.h
@@ -48,6 +48,12 @@ typedef enum {
typedef struct sx krwlock_t;
+#ifndef DEBUG
+#define RW_FLAGS (SX_DUPOK | SX_NOWITNESS)
+#else
+#define RW_FLAGS (SX_DUPOK)
+#endif
+
#define RW_READ_HELD(x) (rw_read_held((x)))
#define RW_WRITE_HELD(x) (rw_write_held((x)))
#define RW_LOCK_HELD(x) (rw_lock_held((x)))
@@ -57,7 +63,7 @@ typedef struct sx krwlock_t;
KASSERT(((lock)->lock_object.lo_flags & LO_ALLMASK) != \
LO_EXPECTED, ("lock %s already initialized", #lock)); \
bzero((lock), sizeof(struct sx)); \
- sx_init_flags((lock), "zfs:" #lock, SX_DUPOK); \
+ sx_init_flags((lock), "zfs:" #lock, RW_FLAGS); \
} while (0)
#define rw_destroy(lock) sx_destroy(lock)
#define rw_enter(lock, how) do { \