]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/.../transaction_manager: convert _remove_indirect_mapping_only to use new...
authorSamuel Just <sjust@redhat.com>
Wed, 1 Oct 2025 23:31:34 +0000 (16:31 -0700)
committerSamuel Just <sjust@redhat.com>
Wed, 28 Jan 2026 02:38:19 +0000 (18:38 -0800)
Also removes now unused LBAMapping::remove_indirect_mapping_only.

Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/os/seastore/lba/btree_lba_manager.h
src/crimson/os/seastore/lba_manager.h
src/crimson/os/seastore/transaction_manager.cc

index e32d8a8690d389e6c537aa31b3877453e6a9b54a..b0c16e60187b2d68b68641196a77d95fb4212272 100644 (file)
@@ -232,23 +232,6 @@ public:
     };
   }
 
-  ref_ret remove_indirect_mapping_only(
-    Transaction &t,
-    LBAMapping mapping) final {
-    assert(mapping.is_viewable());
-    assert(mapping.is_indirect());
-    return seastar::do_with(
-      std::move(mapping),
-      [&t, this](auto &mapping) {
-      return update_refcount(t, mapping.indirect_cursor.get(), -1
-      ).si_then([](auto res) {
-       return ref_iertr::make_ready_future<
-         ref_update_result_t>(ref_update_result_t{
-           std::move(res), std::nullopt});
-      });
-    });
-  }
-
   ref_ret remove_mapping(
     Transaction &t,
     LBAMapping mapping) final {
index 5ce115d20d42e036ec78191678c38b34445db609..e6da438c7565cfd21a0f99ba2e6c8d2f4ef7ba1c 100644 (file)
@@ -205,19 +205,6 @@ public:
     Transaction &t,
     LBAMapping mapping) = 0;
 
-  /*
-   * remove_indirect_mapping_only
-   *
-   * Remove the indirect mapping without touch the corresponding
-   * direct one.
-   *
-   * @return returns the information about the removed
-   * indirect mapping.
-   */
-  virtual ref_ret remove_indirect_mapping_only(
-    Transaction &t,
-    LBAMapping mapping) = 0;
-
   /**
    * Update ref count on mapping
    */
index a6eb3bce57aaeaee6a959afbc460790dc69a9b53..d68e14d98e288c371e89fbf802b180dc1eff80a2 100644 (file)
@@ -260,11 +260,13 @@ TransactionManager::_remove_indirect_mapping_only(
   Transaction &t,
   LBAMapping mapping)
 {
-  return lba_manager->remove_indirect_mapping_only(
-    t, std::move(mapping)
-  ).si_then([](auto result) {
-    return std::move(result.result.mapping);
-  });
+  assert(mapping.is_indirect());
+  auto ret_cursor = co_await lba_manager->update_mapping_refcount(
+    t, std::move(mapping.indirect_cursor), -1
+  );
+  co_return co_await resolve_cursor_to_mapping(
+    t,
+    ret_cursor);
 }
 
 TransactionManager::ref_iertr::future<