summaryrefslogtreecommitdiff
path: root/src/lsm/lsm_tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lsm/lsm_tree.c')
-rw-r--r--src/lsm/lsm_tree.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/lsm/lsm_tree.c b/src/lsm/lsm_tree.c
index cb1ddf22f84..da106ae2089 100644
--- a/src/lsm/lsm_tree.c
+++ b/src/lsm/lsm_tree.c
@@ -235,7 +235,7 @@ __wt_lsm_tree_set_chunk_size(
if (!WT_PREFIX_SKIP(filename, "file:"))
WT_RET_MSG(session, EINVAL,
"Expected a 'file:' URI: %s", chunk->uri);
- WT_RET(__wt_filesize_name(session, filename, false, &size));
+ WT_RET(__wt_fs_size(session, filename, &size));
chunk->size = (uint64_t)size;
@@ -256,7 +256,7 @@ __lsm_tree_cleanup_old(WT_SESSION_IMPL *session, const char *uri)
{ WT_CONFIG_BASE(session, WT_SESSION_drop), "force", NULL };
bool exists;
- WT_RET(__wt_exist(session, uri + strlen("file:"), &exists));
+ WT_RET(__wt_fs_exist(session, uri + strlen("file:"), &exists));
if (exists)
WT_WITH_SCHEMA_LOCK(session, ret,
ret = __wt_schema_drop(session, uri, cfg));
@@ -1344,8 +1344,14 @@ __wt_lsm_tree_worker(WT_SESSION_IMPL *session,
locked = true;
for (i = 0; i < lsm_tree->nchunks; i++) {
chunk = lsm_tree->chunk[i];
- if (file_func == __wt_checkpoint &&
- F_ISSET(chunk, WT_LSM_CHUNK_ONDISK))
+ /*
+ * If the chunk is on disk, don't include underlying handles in
+ * the checkpoint. Checking the "get handles" function is all
+ * we need to do, no further checkpoint calls are done if the
+ * handle is not gathered.
+ */
+ if (F_ISSET(chunk, WT_LSM_CHUNK_ONDISK) &&
+ file_func == __wt_checkpoint_get_handles)
continue;
WT_ERR(__wt_schema_worker(session, chunk->uri,
file_func, name_func, cfg, open_flags));