]> 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>
Wed, 28 Jan 2026 02:38:19 +0000 (18:38 -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 2ae5f463381c972f8f1c868c0f2de90ba4eda2dc..cc42aa6bec6f26de4b7497d2ee0b74223f541f52 100644 (file)
@@ -887,13 +887,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();
@@ -901,12 +901,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 79cb3a46df4709f4dd98f491c64d02f9c00c022c..e2a5638655e9883b6ff704a0d6bd004dae439ef0 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 8def75b659549fad2ca5a9aadf6e2c0d85d1f9b6..66ff46d7da8c004a5dff938ea7c590023b7a1801 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&);