]> 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>
Tue, 2 Dec 2025 23:12:57 +0000 (15:12 -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 5d73b2f257bdac54e08401c43420b3beecfae040..e67a468c5f2d21591ab514a20d8a1f316d71702a 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 216dc67cc8a05915372dba344319cbfb2c0a0606..a69946b0c57c1c750b5730f40886dd3ee9d7dc64 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 9ee07368557c8679ab925e558bdde39264d5eb27..b077f923896c350cd1d273b6e6f9b58b40166708 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<