aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndriy Gapon <avg@FreeBSD.org>2013-11-20 11:05:07 +0000
committerAndriy Gapon <avg@FreeBSD.org>2013-11-20 11:05:07 +0000
commit12ad6bef9bb91a33e42c894b8e23300e26828efa (patch)
tree0c1757cc299fd0de13a5d811ce1dd16a25696291
parent7df1fb6a6ef5a86c4e83eba2442e91b6b14c7b17 (diff)
downloadsrc-12ad6bef9bb91a33e42c894b8e23300e26828efa.tar.gz
src-12ad6bef9bb91a33e42c894b8e23300e26828efa.zip
Notes
-rw-r--r--lib/libzpool/common/kernel.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/libzpool/common/kernel.c b/lib/libzpool/common/kernel.c
index 4dd614f7c1bc..bf7042b15dbe 100644
--- a/lib/libzpool/common/kernel.c
+++ b/lib/libzpool/common/kernel.c
@@ -21,6 +21,7 @@
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2013, Joyent, Inc. All rights reserved.
*/
#include <assert.h>
@@ -221,10 +222,10 @@ rw_enter(krwlock_t *rwlp, krw_t rw)
ASSERT(rwlp->rw_owner != (void *)-1UL);
ASSERT(rwlp->rw_owner != curthread);
- if (rw == RW_READER)
- VERIFY(rw_rdlock(&rwlp->rw_lock) == 0);
- else
+ if (rw == RW_WRITER)
VERIFY(rw_wrlock(&rwlp->rw_lock) == 0);
+ else
+ VERIFY(rw_rdlock(&rwlp->rw_lock) == 0);
rwlp->rw_owner = curthread;
}
@@ -247,10 +248,10 @@ rw_tryenter(krwlock_t *rwlp, krw_t rw)
ASSERT(rwlp->initialized == B_TRUE);
ASSERT(rwlp->rw_owner != (void *)-1UL);
- if (rw == RW_READER)
- rv = rw_tryrdlock(&rwlp->rw_lock);
- else
+ if (rw == RW_WRITER)
rv = rw_trywrlock(&rwlp->rw_lock);
+ else
+ rv = rw_tryrdlock(&rwlp->rw_lock);
if (rv == 0) {
rwlp->rw_owner = curthread;