]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/os/seastore/lba_mapping: don't allow classes above
authorXuehan Xu <xuxuehan@qianxin.com>
Mon, 6 Oct 2025 04:00:07 +0000 (12:00 +0800)
committerXuehan Xu <xuxuehan@qianxin.com>
Tue, 10 Feb 2026 02:53:59 +0000 (10:53 +0800)
TransactionManager to retrieve lba mappings' paddrs.

Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
src/crimson/os/seastore/lba_mapping.h
src/crimson/os/seastore/object_data_handler.cc

index 92706ab90373369e86ca018779d7a68d13ebef7d..9c81a92808ab5d58d0d46bcdcbefbce9041fe848 100644 (file)
@@ -8,6 +8,14 @@
 #include "crimson/os/seastore/lba/lba_btree_node.h"
 #include "crimson/os/seastore/logical_child_node.h"
 
+class transaction_manager_test_t;
+class btree_lba_manager_test;
+class tm_single_device_intergrity_check_test_t;
+class tm_single_device_test_t;
+class tm_multi_device_test_t;
+class tm_multi_tier_device_test_t;
+class tm_random_block_device_test_t;
+
 namespace crimson::os::seastore {
 
 namespace lba {
@@ -126,12 +134,6 @@ public:
     return direct_cursor->get_length();
   }
 
-  paddr_t get_val() const {
-    assert(is_linked_direct());
-    assert(!direct_cursor->is_end());
-    return direct_cursor->get_paddr();
-  }
-
   checksum_t get_checksum() const {
     assert(is_linked_direct());
     assert(!direct_cursor->is_end());
@@ -197,8 +199,21 @@ public:
 private:
   friend lba::BtreeLBAManager;
   friend class TransactionManager;
+  friend class ::transaction_manager_test_t;
+  friend class ::btree_lba_manager_test;
+  friend class ::tm_single_device_intergrity_check_test_t;
+  friend class ::tm_single_device_test_t;
+  friend class ::tm_multi_device_test_t;
+  friend class ::tm_multi_tier_device_test_t;
+  friend class ::tm_random_block_device_test_t;
   friend std::ostream &operator<<(std::ostream&, const LBAMapping&);
 
+  paddr_t get_val() const {
+    assert(is_linked_direct());
+    assert(!direct_cursor->is_end());
+    return direct_cursor->get_paddr();
+  }
+
   LBACursor& get_effective_cursor() {
     if (is_indirect()) {
       return *indirect_cursor;
index 828d4a94b4c9da47b03c303a6a7835b4b782b6fb..680cb0f5f17bf66ba5058bacf513019d782e5545 100644 (file)
@@ -1496,7 +1496,7 @@ ObjectDataHandler::read_ret ObjectDataHandler::read(
             extent_len_t read_len =
               l_current_end.get_byte_distance<extent_len_t>(l_current);
 
-            if (pin.get_val().is_zero()) {
+            if (pin.is_zero_reserved()) {
               DEBUGT("got {}~0x{:x} from zero-pin {}~0x{:x}",
                 ctx.t,
                 l_current,
@@ -1598,7 +1598,7 @@ ObjectDataHandler::fiemap_ret ObjectDataHandler::fiemap(
        ceph_assert(pins.size() >= 1);
         ceph_assert(pins.front().get_key() <= l_start);
        for (auto &&i: pins) {
-         if (!(i.get_val().is_zero())) {
+         if (!i.is_zero_reserved()) {
            laddr_offset_t ret_left = std::max(laddr_offset_t(i.get_key(), 0), l_start);
            laddr_offset_t ret_right = std::min(
              i.get_key() + i.get_length(),