summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsueloverso <sue@mongodb.com>2017-03-20 15:04:18 -0400
committerGitHub <noreply@github.com>2017-03-20 15:04:18 -0400
commitcfdf4394aa39209d402a9006661810cda3bdb38d (patch)
tree279bb59a72068ad828c844fec7c2520ab92de4ef
parent89c063c2acb0f901725f0cd838503c983687a49f (diff)
downloadmongo-cfdf4394aa39209d402a9006661810cda3bdb38d.tar.gz
WT-2990 Restore use of dhandle lock in LSM. (#3342)
-rw-r--r--src/lsm/lsm_work_unit.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/lsm/lsm_work_unit.c b/src/lsm/lsm_work_unit.c
index 10b85d573aa..e6a29666094 100644
--- a/src/lsm/lsm_work_unit.c
+++ b/src/lsm/lsm_work_unit.c
@@ -276,8 +276,9 @@ __wt_lsm_checkpoint_chunk(WT_SESSION_IMPL *session,
if (F_ISSET(chunk, WT_LSM_CHUNK_ONDISK) &&
!F_ISSET(chunk, WT_LSM_CHUNK_STABLE) &&
!chunk->evicted) {
- if ((ret =
- __lsm_discard_handle(session, chunk->uri, NULL)) == 0)
+ WT_WITH_HANDLE_LIST_WRITE_LOCK(session,
+ ret = __lsm_discard_handle(session, chunk->uri, NULL));
+ if (ret == 0)
chunk->evicted = 1;
else if (ret == EBUSY)
ret = 0;
@@ -508,7 +509,9 @@ __lsm_drop_file(WT_SESSION_IMPL *session, const char *uri)
*
* This will fail with EBUSY if the file is still in use.
*/
- WT_RET(__lsm_discard_handle(session, uri, WT_CHECKPOINT));
+ WT_WITH_HANDLE_LIST_WRITE_LOCK(session,
+ ret = __lsm_discard_handle(session, uri, WT_CHECKPOINT));
+ WT_RET(ret);
/*
* Take the schema lock for the drop operation. Since __wt_schema_drop