auto is_left = (iter + 1) == iter_end();
auto donor_iter = is_left ? iter - 1 : iter + 1;
return omap_load_extent(oc, donor_iter->get_val(), get_meta().depth - 1)
- .si_then([=, px=this] (auto &&donor) mutable {
+ .si_then([=] (auto &&donor) mutable {
auto [l, r] = is_left ?
std::make_pair(donor, entry) : std::make_pair(entry, donor);
auto [liter, riter] = is_left ?
logger().debug("{}::merge_entry make_full_merge l {} r {}", __func__, *l, *r);
assert(entry->extent_is_below_min());
return l->make_full_merge(oc, r).si_then([liter=liter, riter=riter,
- l=l, r=r, oc, this, px] (auto &&replacement){
- logger().debug("OMapInnerNode::merge_entry to update parent: {}", *px);
+ l=l, r=r, oc, this] (auto &&replacement){
+ logger().debug("OMapInnerNode::merge_entry to update parent: {}", *this);
journal_inner_update(liter, replacement->get_laddr(), maybe_get_delta_buffer());
journal_inner_remove(riter, maybe_get_delta_buffer());
//retire extent
} else {
logger().debug("{}::merge_entry balanced l {} r {}", __func__, *l, *r);
return l->make_balanced(oc, r).si_then([liter=liter, riter=riter,
- l=l, r=r, oc, this, px] (auto tuple) {
- logger().debug("OMapInnerNode::merge_entry to update parent: {}", *px);
+ l=l, r=r, oc, this] (auto tuple) {
+ logger().debug("OMapInnerNode::merge_entry to update parent: {}", *this);
auto [replacement_l, replacement_r, replacement_pivot] = tuple;
//update operation will not cuase node overflow, so we can do it first
journal_inner_update(liter, replacement_l->get_laddr(), maybe_get_delta_buffer());