]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/lba_mapping: drop the deprecated "duplicate" method
authorXuehan Xu <xuxuehan@qianxin.com>
Wed, 11 Jun 2025 07:09:25 +0000 (15:09 +0800)
committerXuehan Xu <xuxuehan@qianxin.com>
Tue, 5 Aug 2025 06:33:59 +0000 (14:33 +0800)
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
src/crimson/os/seastore/btree/btree_types.h
src/crimson/os/seastore/lba/btree_lba_manager.cc
src/crimson/os/seastore/lba_mapping.h
src/crimson/os/seastore/object_data_handler.cc
src/crimson/os/seastore/transaction_manager.h
src/test/crimson/seastore/test_transaction_manager.cc

index 2a756ce8e79ea467ea1e1bde249072cc2e5cf9ff..e57548de88ef86307354ca59997024952fc145b5 100644 (file)
@@ -283,9 +283,6 @@ struct LBACursor : BtreeCursor<laddr_t, lba::lba_map_val_t> {
     assert(!is_indirect());
     return val->refcount;
   }
-  std::unique_ptr<LBACursor> duplicate() const {
-    return std::make_unique<LBACursor>(*this);
-  }
 
   using base_ertr = crimson::errorator<
     crimson::ct_error::input_output_error>;
index 5e9d71db52c267840e8c069e6096e0ff7db48fef..051bc1a92758c83cdaba37efaac5a17fbde79665 100644 (file)
@@ -494,7 +494,7 @@ BtreeLBAManager::clone_mapping(
          ).si_then([cursor=std::move(cursor)](auto mapping) mutable {
            return clone_mapping_ret_t{
              LBAMapping(mapping.direct_cursor, std::move(cursor)),
-             mapping.duplicate()};
+             mapping};
          });
        });
       });
@@ -1371,7 +1371,7 @@ BtreeLBAManager::remap_mappings(
          return cursor->refresh(
          ).si_then([&ret, &mapping] {
            for (auto &m : ret) {
-             m.direct_cursor = mapping.direct_cursor->duplicate();
+             m.direct_cursor = mapping.direct_cursor;
            }
          });
        }
index cab0d8034dfa01355758954d1e609f5a09e84a7e..cefb288713fd7f16d93896376d45b019e8fc71d2 100644 (file)
@@ -155,18 +155,6 @@ public:
   get_child_ret_t<lba::LBALeafNode, LogicalChildNode>
   get_logical_extent(Transaction &t) const;
 
-  LBAMapping duplicate() const {
-    assert(!is_null());
-    auto dup_iter = [](const LBACursorRef &iter) -> LBACursorRef {
-      if (iter) {
-       return iter->duplicate();
-      } else {
-       return nullptr;
-      }
-    };
-    return LBAMapping(dup_iter(direct_cursor), dup_iter(indirect_cursor));
-  }
-
   using refresh_iertr = LBACursor::base_iertr;
   refresh_iertr::future<LBAMapping> refresh();
 
index 8b42c5da7c0b42766968f41f47060cf0c1da4c89..78ce2329bc75a9a0ce058f86b6d3336423e7b94f 100644 (file)
@@ -1410,8 +1410,7 @@ ObjectDataHandler::clone_ret ObjectDataHandler::clone(
          d_object_data.get_reserved_data_base(),
          d_object_data.get_reserved_data_len());
        return ctx.tm.remove(ctx.t, std::move(*mapping));
-      }).si_then([mapping=mapping.duplicate(),
-                 &d_object_data, ctx](auto pos) mutable {
+      }).si_then([mapping, &d_object_data, ctx](auto pos) mutable {
        auto base = d_object_data.get_reserved_data_base();
        auto len = d_object_data.get_reserved_data_len();
        return ctx.tm.clone_range(
index d2dcaa20aadb791cc3bded8c03960bebe2acd8ed..cbc75bcced720e98fb64521a4b579d7e88faf4c2 100644 (file)
@@ -1168,7 +1168,7 @@ private:
     auto v = pin.get_logical_extent(t);
     if (v.has_child()) {
       return v.get_child_fut(
-      ).si_then([pin=pin.duplicate()](auto extent) {
+      ).si_then([pin](auto extent) {
 #ifndef NDEBUG
         auto lextent = extent->template cast<LogicalChildNode>();
         auto pin_laddr = pin.get_intermediate_base();
@@ -1201,7 +1201,7 @@ private:
         return ext;
       });
     } else {
-      return pin_to_extent_by_type(t, pin.duplicate(), v.get_child_pos(), type);
+      return pin_to_extent_by_type(t, pin, v.get_child_pos(), type);
     }
   }
 
@@ -1279,14 +1279,14 @@ private:
                                    original_len](auto newpin) {
          pin = std::move(newpin);
          if (full_extent_integrity_check) {
-           return read_pin<T>(t, pin.duplicate()
+           return read_pin<T>(t, pin
             ).si_then([](auto maybe_indirect_extent) {
               assert(!maybe_indirect_extent.is_indirect());
               assert(!maybe_indirect_extent.is_clone);
               return maybe_indirect_extent.extent;
             });
          } else {
-           auto ret = get_extent_if_linked<T>(t, pin.duplicate());
+           auto ret = get_extent_if_linked<T>(t, pin);
            if (ret.index() == 1) {
              return std::get<1>(ret
              ).si_then([](auto extent) {
@@ -1426,7 +1426,7 @@ private:
        maybe_init(extent);
        extent.set_seen_by_users();
       }
-    ).si_then([FNAME, &t, pin=pin.duplicate(), this](auto ref) mutable -> ret {
+    ).si_then([FNAME, &t, pin=pin, this](auto ref) mutable -> ret {
       if (ref->is_fully_loaded()) {
         auto crc = ref->calc_crc32c();
         SUBTRACET(
@@ -1498,7 +1498,7 @@ private:
         // No change to extent::seen_by_user because this path is only
         // for background cleaning.
       }
-    ).si_then([FNAME, &t, pin=pin.duplicate(), this](auto ref) {
+    ).si_then([FNAME, &t, pin=pin, this](auto ref) {
       auto crc = ref->calc_crc32c();
       SUBTRACET(
        seastore_tm,
index 7e6f55c54ff97da9f2e1c71cab7f3553895ebf5f..13597e5cde0c656350eef3a978d502a552202908 100644 (file)
@@ -639,7 +639,7 @@ struct transaction_manager_test_t :
     auto addr = pin.get_key();
     auto im_addr = pin.get_intermediate_base();
     auto ext = with_trans_intr(*(t.t), [&](auto& trans) {
-      return tm->read_pin<TestBlock>(trans, pin.duplicate());
+      return tm->read_pin<TestBlock>(trans, pin);
     }).safe_then([](auto ret) {
       return ertr::make_ready_future<TestBlockRef>(ret.extent);
     }).handle_error(
@@ -1205,7 +1205,7 @@ struct transaction_manager_test_t :
     EXPECT_EQ(pin->get_length(), new_len);
     EXPECT_EQ(pin->get_key(), o_laddr + new_offset);
 
-    auto extent = try_read_pin(t, pin->duplicate());
+    auto extent = try_read_pin(t, *pin);
     if (extent) {
       if (!pin->is_indirect()) {
        test_mappings.alloced(pin->get_key(), *extent, t.mapping_delta);
@@ -1368,7 +1368,7 @@ struct transaction_manager_test_t :
       EXPECT_EQ(lpin->get_key(), o_laddr);
       EXPECT_EQ(lpin->get_val(), o_paddr);
       EXPECT_EQ(lpin->get_length(), new_offset);
-      auto lext = try_read_pin(t, lpin->duplicate());
+      auto lext = try_read_pin(t, *lpin);
       if (lext) {
         test_mappings.alloced(lpin->get_key(), *lext, t.mapping_delta);
         EXPECT_TRUE(lext->is_exist_clean());
@@ -1385,7 +1385,7 @@ struct transaction_manager_test_t :
       EXPECT_EQ(rpin->get_val(), o_paddr.add_offset(new_offset)
         .add_offset(new_len));
       EXPECT_EQ(rpin->get_length(), o_len - new_offset - new_len);
-      auto rext = try_read_pin(t, rpin->duplicate());
+      auto rext = try_read_pin(t, *rpin);
       if (rext) {
         test_mappings.alloced(rpin->get_key(), *rext, t.mapping_delta);
         EXPECT_TRUE(rext->is_exist_clean());
@@ -1714,7 +1714,7 @@ struct transaction_manager_test_t :
            }
 
             auto empty_transaction = true;
-            auto last_rpin = pin0->duplicate();
+            auto last_rpin = *pin0;
            ASSERT_TRUE(!split_points.empty());
             while(!split_points.empty()) {
               // new overwrite area: start_off ~ end_off
@@ -1738,7 +1738,7 @@ struct transaction_manager_test_t :
               bufferlist bl;
               bl.append(ceph::bufferptr(ceph::buffer::create(new_len, 0)));
               auto [lpin, ext, rpin] = overwrite_pin(
-                t, last_rpin.duplicate(), new_off, new_len, bl);
+                t, std::move(last_rpin), new_off, new_len, bl);
              if (!ext) {
                conflicted++;
                return;
@@ -2213,7 +2213,7 @@ TEST_P(tm_single_device_test_t, invalid_lba_mapping_detect)
       assert(pin.is_viewable());
       std::ignore = alloc_extent(t, get_laddr_hint((LEAF_NODE_CAPACITY + 1) * 4096), 4096, 'a');
       assert(!pin.is_viewable());
-      pin = refresh_lba_mapping(t, pin.duplicate());
+      pin = refresh_lba_mapping(t, pin);
       auto extent2 = with_trans_intr(*(t.t), [&pin](auto& trans) {
         auto v = pin.get_logical_extent(trans);
         assert(v.has_child());