]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/.../lba_manager: switch update_mapping to take a cursor, add adapter
authorSamuel Just <sjust@redhat.com>
Tue, 30 Sep 2025 18:53:22 +0000 (18:53 +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/lba_mapping.h

index 076c8283d93242cd4e84004aa926d421bc4bd40b..4a7ccc2515be92159926adb2476ea15b6c486172 100644 (file)
@@ -876,13 +876,13 @@ BtreeLBAManager::rewrite_extent(
 BtreeLBAManager::update_mapping_ret
 BtreeLBAManager::update_mapping(
   Transaction& t,
-  LBAMapping mapping,
+  LBACursorRef cursor,
   extent_len_t prev_len,
   paddr_t prev_addr,
   LogicalChildNode& nextent)
 {
   LOG_PREFIX(BtreeLBAManager::update_mapping);
-  auto laddr = mapping.get_key();
+  auto laddr = cursor->get_laddr();
   auto addr = nextent.get_paddr();
   auto len = nextent.get_length();
   auto checksum = nextent.get_last_committed_crc();
@@ -890,12 +890,9 @@ BtreeLBAManager::update_mapping(
          t, laddr, prev_addr, prev_len, addr, len, checksum);
   assert(laddr == nextent.get_laddr());
   assert(!addr.is_null());
-  assert(mapping.is_viewable());
-  assert(!mapping.is_indirect());
-  auto &cursor = mapping.get_effective_cursor();
   auto res = co_await _update_mapping(
     t,
-    cursor,
+    *cursor,
     [prev_addr, addr, prev_len, len, checksum](
       const lba_map_val_t &in) {
       assert(!addr.is_null());
index 721770d2223adfa8d1be785741ad33cfab6ab9d8..95c12f904056c9db9d376d586eb835037cac2e80 100644 (file)
@@ -351,7 +351,7 @@ public:
 
   update_mapping_ret update_mapping(
     Transaction& t,
-    LBAMapping mapping,
+    LBACursorRef cursor,
     extent_len_t prev_len,
     paddr_t prev_addr,
     LogicalChildNode&) final;
index 078de81914f7e050968f53bb3a6789590fc9887f..d51b30678e40bae696c082f9af581ed84692ae63 100644 (file)
@@ -308,10 +308,24 @@ public:
   using update_mapping_ret = base_iertr::future<extent_ref_count_t>;
   virtual update_mapping_ret update_mapping(
     Transaction& t,
-    LBAMapping mapping,
+    LBACursorRef cursor,
     extent_len_t prev_len,
     paddr_t prev_addr,
     LogicalChildNode& nextent) = 0;
+  update_mapping_ret update_mapping(
+    Transaction& t,
+    LBAMapping mapping,
+    extent_len_t prev_len,
+    paddr_t prev_addr,
+    LogicalChildNode& nextent) {
+    assert(!mapping.is_indirect());
+    return update_mapping(
+      t,
+      mapping.direct_cursor,
+      prev_len,
+      prev_addr,
+      nextent);
+  }
 
   /**
    * update_mappings
index 92706ab90373369e86ca018779d7a68d13ebef7d..7592f90b4f669073be4b133e52f81e9bba574ba1 100644 (file)
@@ -195,6 +195,7 @@ public:
   base_iertr::future<LBAMapping> next();
 
 private:
+  friend class LBAManager;
   friend lba::BtreeLBAManager;
   friend class TransactionManager;
   friend std::ostream &operator<<(std::ostream&, const LBAMapping&);