Index: cddl/contrib/opensolaris/head/thread.h =================================================================== --- cddl/contrib/opensolaris/head/thread.h (wersja 195337) +++ cddl/contrib/opensolaris/head/thread.h (kopia robocza) @@ -53,7 +53,6 @@ #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) Index: cddl/contrib/opensolaris/lib/libzpool/common/kernel.c =================================================================== --- cddl/contrib/opensolaris/lib/libzpool/common/kernel.c (wersja 195337) +++ cddl/contrib/opensolaris/lib/libzpool/common/kernel.c (kopia robocza) @@ -115,6 +115,14 @@ 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) { Index: cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h =================================================================== --- cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h (wersja 195337) +++ cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h (kopia robocza) @@ -237,9 +237,11 @@ #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);