diff options
author | sueloverso <sue@mongodb.com> | 2017-03-20 15:04:18 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-20 15:04:18 -0400 |
commit | cfdf4394aa39209d402a9006661810cda3bdb38d (patch) | |
tree | 279bb59a72068ad828c844fec7c2520ab92de4ef | |
parent | 89c063c2acb0f901725f0cd838503c983687a49f (diff) | |
download | mongo-cfdf4394aa39209d402a9006661810cda3bdb38d.tar.gz |
WT-2990 Restore use of dhandle lock in LSM. (#3342)
-rw-r--r-- | src/lsm/lsm_work_unit.c | 9 |
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 |