]> 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>
Mon, 5 Jan 2026 21:14:58 +0000 (13:14 -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 768aa930ebf3773ee106d1732ef2aca8568d54e3..bd386d47eaea3b2b58f52230a5ef969a7e69e472 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 be9cd2a34ab94b115234688869b0f2359ce85235..c1885af63a2f9ea5e08978db751400da1f06e008 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 9cdf5d6b423c40fbea9d002b001c47a78996726d..2c43c2f8f2acbfc27466dbeb5660cfc2b50b8977 100644 (file)
@@ -245,11 +245,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<