diff options
author | Andriy Gapon <avg@FreeBSD.org> | 2013-11-20 11:05:07 +0000 |
---|---|---|
committer | Andriy Gapon <avg@FreeBSD.org> | 2013-11-20 11:05:07 +0000 |
commit | 12ad6bef9bb91a33e42c894b8e23300e26828efa (patch) | |
tree | 0c1757cc299fd0de13a5d811ce1dd16a25696291 | |
parent | 7df1fb6a6ef5a86c4e83eba2442e91b6b14c7b17 (diff) | |
download | src-12ad6bef9bb91a33e42c894b8e23300e26828efa.tar.gz src-12ad6bef9bb91a33e42c894b8e23300e26828efa.zip |
Notes
-rw-r--r-- | lib/libzpool/common/kernel.c | 13 |
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; |