diff options
Diffstat (limited to 'src/third_party/wiredtiger/src/lsm/lsm_tree.c')
-rw-r--r-- | src/third_party/wiredtiger/src/lsm/lsm_tree.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/third_party/wiredtiger/src/lsm/lsm_tree.c b/src/third_party/wiredtiger/src/lsm/lsm_tree.c index cef5e51e214..1b92028072d 100644 --- a/src/third_party/wiredtiger/src/lsm/lsm_tree.c +++ b/src/third_party/wiredtiger/src/lsm/lsm_tree.c @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2014-2017 MongoDB, Inc. + * Copyright (c) 2014-2018 MongoDB, Inc. * Copyright (c) 2008-2014 WiredTiger, Inc. * All rights reserved. * @@ -912,6 +912,7 @@ __wt_lsm_tree_drop( bool locked; locked = false; + WT_NOT_READ(locked); /* Get the LSM tree. */ WT_RET(__wt_lsm_tree_get(session, name, true, &lsm_tree)); @@ -971,6 +972,7 @@ __wt_lsm_tree_rename(WT_SESSION_IMPL *session, old = NULL; locked = false; + WT_NOT_READ(locked); /* Get the LSM tree. */ WT_RET(__wt_lsm_tree_get(session, olduri, true, &lsm_tree)); @@ -1039,8 +1041,10 @@ __wt_lsm_tree_truncate( bool locked; WT_UNUSED(cfg); + chunk = NULL; locked = false; + WT_NOT_READ(locked); /* Get the LSM tree. */ WT_RET(__wt_lsm_tree_get(session, name, true, &lsm_tree)); @@ -1378,9 +1382,10 @@ __wt_lsm_tree_worker(WT_SESSION_IMPL *session, u_int i; bool exclusive, locked, need_release; - locked = false; - need_release = false; + locked = need_release = false; + WT_NOT_READ(locked); exclusive = FLD_ISSET(open_flags, WT_DHANDLE_EXCLUSIVE); + WT_RET(__wt_lsm_tree_get(session, uri, exclusive, &lsm_tree)); need_release = true; @@ -1419,20 +1424,18 @@ __wt_lsm_tree_worker(WT_SESSION_IMPL *session, */ if (FLD_ISSET(open_flags, WT_BTREE_ALTER)) { WT_ERR(__wt_lsm_meta_write(session, lsm_tree, cfg[0])); - /* - * We're about to discard the tree so we do not need to - * release it later. - */ - need_release = false; + + locked = false; if (exclusive) __wt_lsm_tree_writeunlock(session, lsm_tree); else __wt_lsm_tree_readunlock(session, lsm_tree); - locked = false; + /* * We rewrote the meta-data. Discard the tree and the next * access will reopen it. */ + need_release = false; WT_WITH_HANDLE_LIST_WRITE_LOCK(session, ret = __lsm_tree_discard(session, lsm_tree, false)); WT_ERR(ret); |