summaryrefslogtreecommitdiff
path: root/src/lsm/lsm_meta.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lsm/lsm_meta.c')
-rw-r--r--src/lsm/lsm_meta.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/lsm/lsm_meta.c b/src/lsm/lsm_meta.c
index ec52af96231..46ead6d6ac4 100644
--- a/src/lsm/lsm_meta.c
+++ b/src/lsm/lsm_meta.c
@@ -454,13 +454,14 @@ __wt_lsm_meta_read(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree)
* Write the metadata for an LSM tree.
*/
int
-__wt_lsm_meta_write(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree)
+__wt_lsm_meta_write(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree,
+ const char *newconfig)
{
WT_DECL_ITEM(buf);
WT_DECL_RET;
WT_LSM_CHUNK *chunk;
u_int i;
- const char *new_cfg[] = { NULL, NULL, NULL };
+ const char *new_cfg[] = { NULL, NULL, NULL, NULL, NULL };
char *new_metadata;
bool first;
@@ -504,8 +505,10 @@ __wt_lsm_meta_write(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree)
WT_ERR(__wt_buf_catfmt(session, buf, "]"));
/* Update the existing configuration with the new values. */
- new_cfg[0] = lsm_tree->config;
- new_cfg[1] = buf->data;
+ new_cfg[0] = WT_CONFIG_BASE(session, lsm_meta);
+ new_cfg[1] = lsm_tree->config;
+ new_cfg[2] = buf->data;
+ new_cfg[3] = newconfig;
WT_ERR(__wt_config_collapse(session, new_cfg, &new_metadata));
ret = __wt_metadata_update(session, lsm_tree->name, new_metadata);
WT_ERR(ret);