svn commit: r195515 - in head/cddl/contrib/opensolaris: head
lib/libzpool/common lib/libzpool/common/sys
Pawel Jakub Dawidek
pjd at FreeBSD.org
Thu Jul 9 20:22:06 UTC 2009
Author: pjd
Date: Thu Jul 9 20:22:05 2009
New Revision: 195515
URL: http://svn.freebsd.org/changeset/base/195515
Log:
The mutex_owned() macro should operate on kmutex_t and not on mutex_t.
This fixes 'zdb <poolname>' crash.
Reported by: avg
Approved by: re (kib)
Modified:
head/cddl/contrib/opensolaris/head/thread.h
head/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c
head/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h
Modified: head/cddl/contrib/opensolaris/head/thread.h
==============================================================================
--- head/cddl/contrib/opensolaris/head/thread.h Thu Jul 9 20:16:01 2009 (r195514)
+++ head/cddl/contrib/opensolaris/head/thread.h Thu Jul 9 20:22:05 2009 (r195515)
@@ -53,7 +53,6 @@ typedef pthread_rwlock_t rwlock_t;
#define mutex_lock(l) pthread_mutex_lock(l)
#define mutex_trylock(l) pthread_mutex_trylock(l)
#define mutex_unlock(l) pthread_mutex_unlock(l)
-#define mutex_owned(l) pthread_mutex_isowned_np(l)
#define rwlock_init(l,f,a) pthread_rwlock_init(l,NULL)
#define rwlock_destroy(l) pthread_rwlock_destroy(l)
#define rw_rdlock(l) pthread_rwlock_rdlock(l)
Modified: head/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c Thu Jul 9 20:16:01 2009 (r195514)
+++ head/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c Thu Jul 9 20:22:05 2009 (r195515)
@@ -115,6 +115,14 @@ zmutex_destroy(kmutex_t *mp)
mp->initialized = B_FALSE;
}
+int
+zmutex_owned(kmutex_t *mp)
+{
+ ASSERT(mp->initialized == B_TRUE);
+
+ return (mp->m_owner == curthread);
+}
+
void
mutex_enter(kmutex_t *mp)
{
Modified: head/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h Thu Jul 9 20:16:01 2009 (r195514)
+++ head/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h Thu Jul 9 20:22:05 2009 (r195515)
@@ -237,9 +237,11 @@ typedef struct kmutex {
#define mutex_init(mp, b, c, d) zmutex_init((kmutex_t *)(mp))
#define mutex_destroy(mp) zmutex_destroy((kmutex_t *)(mp))
+#define mutex_owned(mp) zmutex_owned((kmutex_t *)(mp))
extern void zmutex_init(kmutex_t *mp);
extern void zmutex_destroy(kmutex_t *mp);
+extern int zmutex_owned(kmutex_t *mp);
extern void mutex_enter(kmutex_t *mp);
extern void mutex_exit(kmutex_t *mp);
extern int mutex_tryenter(kmutex_t *mp);
More information about the svn-src-head
mailing list