]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/rbm: introduce get_end to remove error-prone code 65197/head
authormyoungwon oh <ohmyoungwon@gmail.com>
Sun, 24 Aug 2025 02:08:01 +0000 (02:08 +0000)
committermyoungwon oh <ohmyoungwon@gmail.com>
Sun, 24 Aug 2025 11:54:25 +0000 (11:54 +0000)
Signed-off-by: Myoungwon Oh <ohmyoungwon@gmail.com>
src/crimson/os/seastore/random_block_manager/avlallocator.cc
src/crimson/os/seastore/random_block_manager/avlallocator.h

index fb4f5b7692f8140413bd3268c4dc457a15a9c1ae..9c95f4a0897cabbb0a4ca248a9c3fd482fad2ccd 100644 (file)
@@ -84,7 +84,7 @@ rbm_abs_addr AvlAllocator::find_block(size_t size)
       return off;
     } 
   }
-  return base_addr + total_size;
+  return get_end();
 }
 
 extent_len_t AvlAllocator::find_block(
@@ -174,7 +174,7 @@ std::optional<interval_set<rbm_abs_addr>> AvlAllocator::alloc_extent(
   auto try_to_alloc_block = [this, &result, FNAME] (uint64_t alloc_size) -> uint64_t
   {
     rbm_abs_addr start = find_block(alloc_size);
-    if (start != base_addr + total_size) {
+    if (start != get_end()) {
       _remove_from_tree(start, alloc_size);
       DEBUG("allocate addr: {}, allocate size: {}, available size: {}",
        start, alloc_size, available_size);
@@ -258,7 +258,7 @@ bool AvlAllocator::is_free_extent(rbm_abs_addr start, size_t size)
 {
   rbm_abs_addr end = start + size;
   ceph_assert(size != 0);
-  if (start < base_addr || base_addr + total_size < end) {
+  if (start < base_addr || get_end() < end) {
     return false;
   }
 
index fa703994e3f1ba9dfdcb964d313def8250d96510..74cf4aa21ff8a7f5b1e9f66328c3f81a5df6f0f3 100644 (file)
@@ -127,6 +127,10 @@ public:
     return rbm_extent_state_t::ALLOCATED;
   }
 
+  rbm_abs_addr get_end() const {
+    return base_addr + total_size;
+  }
+
 private:
   void _add_to_tree(rbm_abs_addr start, size_t size);