]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
fixup! crimson/os/seastore/btree_types: BtreeCursors don't hold local copies of lba...
authorXuehan Xu <xuxuehan@qianxin.com>
Mon, 8 Dec 2025 07:57:41 +0000 (15:57 +0800)
committerXuehan Xu <xuxuehan@qianxin.com>
Fri, 23 Jan 2026 03:07:49 +0000 (11:07 +0800)
src/crimson/os/seastore/object_data_handler.cc
src/crimson/tools/store_nbd/tm_driver.cc

index 871780288baceb328bed01a9aa1561e01126da3b..4f7cd2e292723116a29d918590085c5f76f2c142 100644 (file)
@@ -972,14 +972,19 @@ ObjectDataHandler::punch_multi_mapping_hole(
   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
index d70edda030a5f9904bfc17bcef98cf90c1503c8a..6a2f8059c6a2f0dbbbe4fe598b34e67280e1ec67 100644 (file)
@@ -76,10 +76,7 @@ TMDriver::read_extents_ret TMDriver::read_extents(
          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)