diff options
Diffstat (limited to 'src/third_party/wiredtiger/src/session/session_dhandle.c')
-rw-r--r-- | src/third_party/wiredtiger/src/session/session_dhandle.c | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/src/third_party/wiredtiger/src/session/session_dhandle.c b/src/third_party/wiredtiger/src/session/session_dhandle.c index ddf4d3dfa33..a899bad1b1f 100644 --- a/src/third_party/wiredtiger/src/session/session_dhandle.c +++ b/src/third_party/wiredtiger/src/session/session_dhandle.c @@ -183,17 +183,17 @@ __wt_session_lock_dhandle( */ if (F_ISSET(dhandle, WT_DHANDLE_OPEN) && (!want_exclusive || lock_busy)) { - WT_RET(__wt_readlock(session, dhandle->rwlock)); + __wt_readlock(session, dhandle->rwlock); if (F_ISSET(dhandle, WT_DHANDLE_DEAD)) { *is_deadp = 1; - return ( - __wt_readunlock(session, dhandle->rwlock)); + __wt_readunlock(session, dhandle->rwlock); + return (0); } is_open = F_ISSET(dhandle, WT_DHANDLE_OPEN); if (is_open && !want_exclusive) return (0); - WT_RET(__wt_readunlock(session, dhandle->rwlock)); + __wt_readunlock(session, dhandle->rwlock); } else is_open = false; @@ -206,8 +206,8 @@ __wt_session_lock_dhandle( if ((ret = __wt_try_writelock(session, dhandle->rwlock)) == 0) { if (F_ISSET(dhandle, WT_DHANDLE_DEAD)) { *is_deadp = 1; - return ( - __wt_writeunlock(session, dhandle->rwlock)); + __wt_writeunlock(session, dhandle->rwlock); + return (0); } /* @@ -217,8 +217,7 @@ __wt_session_lock_dhandle( if (F_ISSET(dhandle, WT_DHANDLE_OPEN) && !want_exclusive) { lock_busy = false; - WT_RET( - __wt_writeunlock(session, dhandle->rwlock)); + __wt_writeunlock(session, dhandle->rwlock); continue; } @@ -287,12 +286,11 @@ __wt_session_release_btree(WT_SESSION_IMPL *session) locked = false; } if (locked) { - if (write_locked) + if (write_locked) { F_CLR(dhandle, WT_DHANDLE_EXCLUSIVE); - - WT_TRET(write_locked ? - __wt_writeunlock(session, dhandle->rwlock): - __wt_readunlock(session, dhandle->rwlock)); + __wt_writeunlock(session, dhandle->rwlock); + } else + __wt_readunlock(session, dhandle->rwlock); } session->dhandle = NULL; @@ -514,7 +512,7 @@ __wt_session_get_btree(WT_SESSION_IMPL *session, dhandle->excl_session = NULL; dhandle->excl_ref = 0; F_CLR(dhandle, WT_DHANDLE_EXCLUSIVE); - WT_RET(__wt_writeunlock(session, dhandle->rwlock)); + __wt_writeunlock(session, dhandle->rwlock); WT_WITH_SCHEMA_LOCK(session, ret, WT_WITH_HANDLE_LIST_LOCK(session, @@ -536,7 +534,7 @@ __wt_session_get_btree(WT_SESSION_IMPL *session, dhandle->excl_session = NULL; dhandle->excl_ref = 0; F_CLR(dhandle, WT_DHANDLE_EXCLUSIVE); - WT_TRET(__wt_writeunlock(session, dhandle->rwlock)); + __wt_writeunlock(session, dhandle->rwlock); WT_RET(ret); } |