diff options
Diffstat (limited to 'src/third_party/wiredtiger/src/reconcile/rec_child.c')
-rw-r--r-- | src/third_party/wiredtiger/src/reconcile/rec_child.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/src/third_party/wiredtiger/src/reconcile/rec_child.c b/src/third_party/wiredtiger/src/reconcile/rec_child.c index 56104639e53..6423eb3347d 100644 --- a/src/third_party/wiredtiger/src/reconcile/rec_child.c +++ b/src/third_party/wiredtiger/src/reconcile/rec_child.c @@ -17,7 +17,7 @@ __rec_child_deleted(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_REF *ref, WT_C { WT_PAGE_DELETED *page_del; - page_del = ref->page_del; + page_del = ref->ft_info.del; /* * Internal pages with child leaf pages in the WT_REF_DELETED state are a special case during @@ -61,18 +61,10 @@ __rec_child_deleted(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_REF *ref, WT_C * function instantiates an entirely new page.) */ if (ref->addr != NULL && !__wt_page_del_active(session, ref, true)) { - /* - * Minor memory cleanup: if a truncate call deleted this page and we were ever forced to - * instantiate the page in memory, we would have built a list of updates in the page - * reference in order to be able to commit/rollback the truncate. We just passed a - * visibility test, discard the update list. - */ - if (page_del != NULL) { - __wt_free(session, ref->page_del->update_list); - __wt_free(session, ref->page_del); - } - WT_RET(__wt_ref_block_free(session, ref)); + + /* Any fast-truncate information can be freed as soon as the delete is stable. */ + __wt_overwrite_and_free(session, ref->ft_info.del); } /* |