diff options
author | Michael Cahill <michael.cahill@wiredtiger.com> | 2015-02-03 12:30:56 +1100 |
---|---|---|
committer | Michael Cahill <michael.cahill@wiredtiger.com> | 2015-02-03 12:30:56 +1100 |
commit | e645e1985499efded84f70916bfc98dc3cf20ef4 (patch) | |
tree | f19be217c4f59413de4c5a294a8c3db71a6cff2d /src/reconcile | |
parent | 71f1559c91ed119082ebe42772da15e28915e1c8 (diff) | |
parent | 7a68a1643f9beafc34b69d2e52c8af741e9dc333 (diff) | |
download | mongo-e645e1985499efded84f70916bfc98dc3cf20ef4.tar.gz |
Merge branch 'develop' into discard-dirty
Diffstat (limited to 'src/reconcile')
-rw-r--r-- | src/reconcile/rec_write.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/reconcile/rec_write.c b/src/reconcile/rec_write.c index b4f28cc4e17..1520cd6ef30 100644 --- a/src/reconcile/rec_write.c +++ b/src/reconcile/rec_write.c @@ -4008,7 +4008,6 @@ __rec_row_int(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_PAGE *page) WT_ERR(__rec_child_modify(session, r, ref, &hazard, &state)); addr = ref->addr; child = ref->page; - vtype = 0; /* Deleted child we don't have to write. */ if (state == WT_CHILD_IGNORE) { @@ -4026,10 +4025,6 @@ __rec_row_int(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_PAGE *page) continue; } - /* Deleted child requiring a proxy cell. */ - if (state == WT_CHILD_PROXY) - vtype = WT_CELL_ADDR_DEL; - /* * Modified child. Empty pages are merged into the parent and * discarded. @@ -4079,22 +4074,22 @@ __rec_row_int(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_PAGE *page) /* * Build the value cell, the child page's address. Addr points - * to an on-page cell or an off-page WT_ADDR structure. The - * cell type has been set in the case of page deletion requiring + * to an on-page cell or an off-page WT_ADDR structure. There's + * a special cell type in the case of page deletion requiring * a proxy cell, otherwise use the information from the addr or * original cell. */ if (__wt_off_page(page, addr)) { p = addr->addr; size = addr->size; - if (vtype == 0) - vtype = __rec_vtype(addr); + vtype = state == WT_CHILD_PROXY ? + WT_CELL_ADDR_DEL : __rec_vtype(addr); } else { __wt_cell_unpack(ref->addr, vpack); p = vpack->data; size = vpack->size; - if (vtype == 0) - vtype = vpack->raw; + vtype = state == WT_CHILD_PROXY ? + WT_CELL_ADDR_DEL : vpack->raw; } __rec_cell_build_addr(r, p, size, vtype, 0); CHILD_RELEASE_ERR(session, hazard, ref); |