summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/lsm/lsm_tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/wiredtiger/src/lsm/lsm_tree.c')
-rw-r--r--src/third_party/wiredtiger/src/lsm/lsm_tree.c21
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);