LBAMapping left_mapping,
op_type_t op_type)
{
- return punch_left_mapping(
- ctx, overwrite_range, data, std::move(left_mapping), op_type
- ).si_then([this, ctx, &overwrite_range](auto mapping) {
- return punch_inner_mappings(ctx, overwrite_range, std::move(mapping));
- }).si_then([this, ctx, &overwrite_range, &data, op_type](auto mapping) {
- return punch_right_mapping(
+ auto mapping = co_await punch_left_mapping(
+ ctx, overwrite_range, data, std::move(left_mapping), op_type);
+ if (overwrite_range.clonerange_info.has_value()) {
+ co_await overwrite_range.clonerange_info->refresh();
+ }
+ mapping = co_await punch_inner_mappings(
+ ctx, overwrite_range, std::move(mapping));
+ if (overwrite_range.clonerange_info.has_value()) {
+ co_await overwrite_range.clonerange_info->refresh();
+ }
+ mapping = co_await punch_right_mapping(
ctx, overwrite_range, data, std::move(mapping), op_type);
- });
+ co_return mapping;
}
ObjectDataHandler::write_ret
pins.begin(),
pins.end(),
[this, &t, &ret](auto &&pin) {
- logger().debug(
- "read_extents: get_extent {}~{}",
- pin.get_val(),
- pin.get_length());
+ logger().debug("read_extents: get_extent {}", pin);
return tm->read_pin<TestBlock>(
t,
std::move(pin)