summaryrefslogtreecommitdiff
path: root/src/btree/bt_split.c
diff options
context:
space:
mode:
authorAlex Gorrod <alexander.gorrod@mongodb.com>2015-11-26 15:47:10 +1100
committerAlex Gorrod <alexander.gorrod@mongodb.com>2015-11-26 15:47:10 +1100
commit4e1844c6a28ce5b60ea6a44b81bd04a3f5457940 (patch)
treed6baf14195968d33d84ba4035126947be8a643fa /src/btree/bt_split.c
parentcace179242802786b9ecbdb5f229389c517dd531 (diff)
parent714ae53068b767f64b90dae503a82dc063f9a25f (diff)
downloadmongo-4e1844c6a28ce5b60ea6a44b81bd04a3f5457940.tar.gz
Merge pull request #2324 from wiredtiger/wt-2230-multi-split-error-path
WT-2230: multi-split error path
Diffstat (limited to 'src/btree/bt_split.c')
-rw-r--r--src/btree/bt_split.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/btree/bt_split.c b/src/btree/bt_split.c
index 92ed2b3e559..35c3bfea711 100644
--- a/src/btree/bt_split.c
+++ b/src/btree/bt_split.c
@@ -1527,7 +1527,7 @@ __split_multi_inmem_final(WT_PAGE *orig, WT_MULTI *multi)
* Discard allocated pages after failure.
*/
static void
-__split_multi_inmem_fail(WT_SESSION_IMPL *session, WT_REF *ref)
+__split_multi_inmem_fail(WT_SESSION_IMPL *session, WT_PAGE *orig, WT_REF *ref)
{
/*
* We failed creating new in-memory pages. For error-handling reasons,
@@ -1537,7 +1537,7 @@ __split_multi_inmem_fail(WT_SESSION_IMPL *session, WT_REF *ref)
*/
if (ref->page != NULL) {
F_SET_ATOMIC(ref->page, WT_PAGE_UPDATE_IGNORE);
- __wt_free_ref(session, ref->page, ref, true);
+ __wt_free_ref(session, ref, orig->type, true);
}
}
@@ -1962,7 +1962,7 @@ __split_multi(WT_SESSION_IMPL *session, WT_REF *ref, bool closing)
if (0) {
err: for (i = 0; i < new_entries; ++i)
- __split_multi_inmem_fail(session, ref_new[i]);
+ __split_multi_inmem_fail(session, page, ref_new[i]);
}
__wt_free(session, ref_new);
@@ -2072,6 +2072,6 @@ __wt_split_rewrite(WT_SESSION_IMPL *session, WT_REF *ref)
return (0);
-err: __split_multi_inmem_fail(session, &new);
+err: __split_multi_inmem_fail(session, page, &new);
return (ret);
}