]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/.../lba_manager: remove get_mapping interfaces
authorSamuel Just <sjust@redhat.com>
Mon, 13 Oct 2025 22:50:05 +0000 (22:50 +0000)
committerSamuel Just <sjust@redhat.com>
Mon, 5 Jan 2026 21:14:58 +0000 (13:14 -0800)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/os/seastore/lba/btree_lba_manager.cc
src/crimson/os/seastore/lba/btree_lba_manager.h
src/crimson/os/seastore/lba_manager.h
src/crimson/os/seastore/transaction_manager.h
src/test/crimson/seastore/test_btree_lba_manager.cc

index dffed25cac7b515e3ee9a0ffba67c8602d55bab6..4a0441da27b1524421c078dd1d8590c9d2d4771f 100644 (file)
@@ -185,37 +185,6 @@ BtreeLBAManager::get_cursor(
   co_return btree.get_cursor(c, leaf, extent.get_laddr());
 }
 
-BtreeLBAManager::get_mappings_ret
-BtreeLBAManager::get_mappings(
-  Transaction &t,
-  laddr_t laddr,
-  extent_len_t length)
-{
-  LOG_PREFIX(BtreeLBAManager::get_mappings);
-  TRACET("{}~0x{:x} ...", t, laddr, length);
-  auto c = get_context(t);
-
-  lba_mapping_list_t ret;
-  auto btree = co_await get_btree<LBABtree>(cache, c);
-
-  auto cursors = co_await get_cursors(c, btree, laddr, length);
-  for (auto &cursor: cursors) {
-    assert(!cursor->is_end());
-    if (!cursor->is_indirect()) {
-      ret.emplace_back(LBAMapping::create_direct(std::move(cursor)));
-    } else {
-      assert(cursor->val->refcount == EXTENT_DEFAULT_REF_COUNT);
-      assert(cursor->val->checksum == 0);
-      auto direct = co_await this->resolve_indirect_cursor(c, btree, *cursor);
-      ret.emplace_back(LBAMapping::create_indirect(
-                        std::move(direct), std::move(cursor)));
-    }
-    TRACET("{}~0x{:x} got {}",
-          c.trans, laddr, length, ret.back());
-  }
-  co_return ret;
-}
-
 BtreeLBAManager::get_cursors_ret
 BtreeLBAManager::get_cursors(
   op_context_t c,
@@ -268,76 +237,6 @@ BtreeLBAManager::resolve_indirect_cursor(
   });
 }
 
-BtreeLBAManager::get_mapping_ret
-BtreeLBAManager::get_mapping(
-  Transaction &t,
-  laddr_t laddr,
-  bool search_containing)
-{
-  LOG_PREFIX(BtreeLBAManager::get_mapping);
-  TRACET("{} ... search_containing={}", t, laddr, search_containing);
-  auto c = get_context(t);
-  auto btree = co_await get_btree<LBABtree>(cache, c);
-
-  LBACursorRef cursor = co_await (
-    search_containing ?
-    get_containing_cursor(c, btree, laddr) :
-    get_cursor(c, btree, laddr));
-
-  assert(!cursor->is_end());
-  if (!cursor->is_indirect()) {
-    TRACET("{} got direct cursor {}",
-          c.trans, laddr, *cursor);
-    co_return LBAMapping::create_direct(std::move(cursor));
-  }
-
-  if (search_containing) {
-    assert(cursor->contains(laddr));
-  } else {
-    assert(laddr == cursor->get_laddr());
-  }
-  assert(cursor->val->refcount == EXTENT_DEFAULT_REF_COUNT);
-  assert(cursor->val->checksum == 0);
-  auto direct = co_await resolve_indirect_cursor(c, btree, *cursor);
-  auto mapping = LBAMapping::create_indirect(
-    std::move(direct), std::move(cursor));
-  TRACET("{} got indirect mapping {}",
-        c.trans, laddr, mapping);
-  co_return mapping;
-}
-
-BtreeLBAManager::get_mapping_ret
-BtreeLBAManager::get_mapping(
-  Transaction &t,
-  LogicalChildNode &extent)
-{
-  LOG_PREFIX(BtreeLBAManager::get_mapping);
-  TRACET("{}", t, extent);
-#ifndef NDEBUG
-  if (extent.is_mutation_pending()) {
-    auto &prior = static_cast<LogicalChildNode&>(
-      *extent.get_prior_instance());
-    assert(prior.peek_parent_node()->is_valid());
-  } else {
-    assert(extent.peek_parent_node()->is_valid());
-  }
-#endif
-  auto c = get_context(t);
-  auto btree = co_await get_btree<LBABtree>(cache, c);
-
-  auto leaf = co_await extent.get_parent_node(c.trans, c.cache);
-
-  if (leaf->is_pending()) {
-    TRACET("find pending extent {} for {}",
-          c.trans, (void*)leaf.get(), extent);
-  }
-#ifndef NDEBUG
-  auto it = leaf->lower_bound(extent.get_laddr());
-  assert(it != leaf->end() && it.get_key() == extent.get_laddr());
-#endif
-  co_return LBAMapping::create_direct(btree.get_cursor(c, leaf, extent.get_laddr()));
-}
-
 BtreeLBAManager::alloc_extent_ret
 BtreeLBAManager::reserve_region(
   Transaction &t,
@@ -1162,7 +1061,7 @@ BtreeLBAManager::get_containing_cursor(
     }
     TRACET("{} got {}, {}",
           c.trans, laddr, iter.get_key(), iter.get_val());
-    return get_mapping_iertr::make_ready_future<
+    return get_cursor_iertr::make_ready_future<
       LBACursorRef>(iter.get_cursor(c));
   });
 }
index d330c8b85c25308a783c220cb9f86229e1b51558..7027430e262b3c3e0446e560854b616269740061 100644 (file)
@@ -75,19 +75,6 @@ public:
     Transaction &t,
     LogicalChildNode &extent) final;
 
-  get_mappings_ret get_mappings(
-    Transaction &t,
-    laddr_t offset, extent_len_t length) final;
-
-  get_mapping_ret get_mapping(
-    Transaction &t,
-    laddr_t offset,
-    bool search_containing = false) final;
-
-  get_mapping_ret get_mapping(
-    Transaction &t,
-    LogicalChildNode &extent) final;
-
   alloc_extent_ret reserve_region(
     Transaction &t,
     LBAMapping pos,
@@ -506,7 +493,7 @@ private:
     laddr_t offset,
     extent_len_t length);
 
-  using resolve_indirect_cursor_ret = get_mappings_iertr::future<LBACursorRef>;
+  using resolve_indirect_cursor_ret = base_iertr::future<LBACursorRef>;
   resolve_indirect_cursor_ret resolve_indirect_cursor(
     op_context_t c,
     LBABtree& btree,
index 80d815dab92d26667b02f66fd8358695df85da71..cb101af592a37b376d7f8fac27de4b926be704cb 100644 (file)
@@ -52,43 +52,6 @@ public:
     Transaction &t,
     LogicalChildNode &extent) = 0;
 
-  /**
-   * Fetches mappings for laddr_t in range [offset, offset + len)
-   *
-   * Future will not resolve until all pins have resolved (set_paddr called)
-   * For indirect lba mappings, get_mappings will always retrieve the original
-   * lba value.
-   */
-  using get_mappings_iertr = base_iertr;
-  using get_mappings_ret = get_mappings_iertr::future<lba_mapping_list_t>;
-  virtual get_mappings_ret get_mappings(
-    Transaction &t,
-    laddr_t offset, extent_len_t length) = 0;
-
-  /**
-   * Fetches the mapping for laddr_t
-   *
-   * Future will not resolve until the pin has resolved (set_paddr called)
-   * For indirect lba mappings, get_mapping will always retrieve the original
-   * lba value.
-   */
-  using get_mapping_iertr = base_iertr::extend<
-    crimson::ct_error::enoent>;
-  using get_mapping_ret = get_mapping_iertr::future<LBAMapping>;
-  virtual get_mapping_ret get_mapping(
-    Transaction &t,
-    laddr_t offset,
-    bool search_containing = false) = 0;
-
-  /*
-   * Fetches the mapping corresponding to the "extent"
-   *
-   */
-  virtual get_mapping_ret get_mapping(
-    Transaction &t,
-    LogicalChildNode &extent) = 0;
-
-
 #ifdef UNIT_TESTS_BUILT
   using get_end_mapping_iertr = base_iertr;
   using get_end_mapping_ret = get_end_mapping_iertr::future<LBAMapping>;
index c6f57c75ab7467e43ff9831df8befad013a26658..3ebc12b1c83fb6aaaf08fefcc870c4bddcd49fad 100644 (file)
@@ -109,8 +109,9 @@ public:
    *
    * Get the logical pin at offset
    */
-  using get_pin_iertr = LBAManager::get_mapping_iertr;
-  using get_pin_ret = LBAManager::get_mapping_iertr::future<LBAMapping>;
+  using get_pin_iertr = base_iertr::extend<
+    crimson::ct_error::enoent>;
+  using get_pin_ret = get_pin_iertr::future<LBAMapping>;
   get_pin_ret get_pin(
     Transaction &t,
     laddr_t offset) {
@@ -153,7 +154,7 @@ public:
    *
    * Get logical pins overlapping offset~length
    */
-  using get_pins_iertr = LBAManager::get_mappings_iertr;
+  using get_pins_iertr = base_iertr;
   using get_pins_ret = get_pins_iertr::future<lba_mapping_list_t>;
   get_pins_ret get_pins(
     Transaction &t,
index 33abb1b43f4e887703aa62fb0a7d21c6118bc5ea..50e602d2ccd5c306bfc52c163638740adbb88cf2 100644 (file)
@@ -656,24 +656,24 @@ struct btree_lba_manager_test : btree_test_base {
       auto ret_list = with_trans_intr(
        *t.t,
        [=, this](auto &t) {
-         return lba_manager->get_mappings(
+         return lba_manager->get_cursors(
            t, laddr, len);
        }).unsafe_get();
       EXPECT_EQ(ret_list.size(), 1);
       auto &ret = *ret_list.begin();
-      EXPECT_EQ(i.second.addr, ret.get_val());
-      EXPECT_EQ(laddr, ret.get_key());
-      EXPECT_EQ(len, ret.get_length());
+      EXPECT_EQ(i.second.addr, ret->get_paddr());
+      EXPECT_EQ(laddr, ret->get_laddr());
+      EXPECT_EQ(len, ret->get_length());
 
       auto ret_pin = with_trans_intr(
        *t.t,
        [=, this](auto &t) {
-         return lba_manager->get_mapping(
+         return lba_manager->get_cursor(
            t, laddr);
        }).unsafe_get();
-      EXPECT_EQ(i.second.addr, ret_pin.get_val());
-      EXPECT_EQ(laddr, ret_pin.get_key());
-      EXPECT_EQ(len, ret_pin.get_length());
+      EXPECT_EQ(i.second.addr, ret_pin->get_paddr());
+      EXPECT_EQ(laddr, ret_pin->get_laddr());
+      EXPECT_EQ(len, ret_pin->get_length());
     }
     with_trans_intr(
       *t.t,