diff --git a/lib/libzpool/include/sys/zfs_context.h b/lib/libzpool/include/sys/zfs_context.h index ccd349ec0b..be2b46c3ce 100644 --- a/lib/libzpool/include/sys/zfs_context.h +++ b/lib/libzpool/include/sys/zfs_context.h @@ -149,9 +149,9 @@ extern void vpanic(const char *, __va_list); /* * Threads */ - -/* XXX: not portable */ -#define curthread ((void *)(uintptr_t)pthread_self()) +#define curthread ((void *)(uintptr_t)pthread_self()) +#define tsd_get(key) pthread_getspecific(key) +#define tsd_set(key, val) pthread_setspecific(key, val) typedef struct kthread kthread_t; typedef void (*thread_func_t)(void *); diff --git a/module/zfs/rrwlock.c b/module/zfs/rrwlock.c index 7bce5dd8d7..cff7adfe14 100644 --- a/module/zfs/rrwlock.c +++ b/module/zfs/rrwlock.c @@ -120,7 +120,7 @@ rrn_find_and_remove(rrwlock_t *rrl) rrw_node_t *prev = NULL; if (refcount_count(&rrl->rr_linked_rcount) == 0) - return (NULL); + return (B_FALSE); for (rn = tsd_get(rrw_tsd_key); rn != NULL; rn = rn->rn_next) { if (rn->rn_rrl == rrl) {