]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/seastore_types: use is_backref_mapped_type()
authorYingxin Cheng <yingxin.cheng@intel.com>
Wed, 18 Dec 2024 08:47:54 +0000 (16:47 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Wed, 18 Dec 2024 08:47:54 +0000 (16:47 +0800)
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
src/crimson/os/seastore/cache.cc
src/crimson/os/seastore/cached_extent.cc
src/crimson/os/seastore/cached_extent.h
src/crimson/os/seastore/seastore_types.h

index a4c6caf6b1bd30710d48ec5617199dc829cf069d..1f29d208bd2d90bef4b3088e1776ab805fa1a8bf 100644 (file)
@@ -1355,8 +1355,8 @@ record_t Cache::prepare_record(
     retire_stat.increment(extent->get_length());
     DEBUGT("retired and remove extent -- {}", t, *extent);
     commit_retire_extent(t, extent);
-    if (is_backref_mapped_extent_node(extent) ||
-        is_retired_placeholder_type(extent->get_type())) {
+    if (is_backref_mapped_type(extent->get_type()) ||
+       is_retired_placeholder_type(extent->get_type())) {
       rel_delta.alloc_blk_ranges.emplace_back(
        extent->get_paddr(),
        L_ADDR_NULL,
@@ -1413,7 +1413,7 @@ record_t Cache::prepare_record(
       },
       modify_time);
     if (i->is_valid() &&
-       is_backref_mapped_extent_node(i)) {
+       is_backref_mapped_type(i->get_type())) {
       laddr_t alloc_laddr;
       if (i->is_logical()) {
        alloc_laddr = i->cast<LogicalCachedExtent>()->get_laddr();
@@ -1438,7 +1438,7 @@ record_t Cache::prepare_record(
     get_by_ext(efforts.fresh_ool_by_ext,
                i->get_type()).increment(i->get_length());
     i->prepare_commit();
-    if (is_backref_mapped_extent_node(i)) {
+    if (is_backref_mapped_type(i->get_type())) {
       laddr_t alloc_laddr;
       if (i->is_logical()) {
         alloc_laddr = i->cast<LogicalCachedExtent>()->get_laddr();
@@ -1696,7 +1696,7 @@ void Cache::complete_commit(
     const auto t_src = t.get_src();
     touch_extent(*i, &t_src);
     epm.commit_space_used(i->get_paddr(), i->get_length());
-    if (is_backref_mapped_extent_node(i)) {
+    if (is_backref_mapped_type(i->get_type())) {
       DEBUGT("backref_entry alloc {} len 0x{:x}",
             t,
             i->get_paddr(),
@@ -1768,7 +1768,7 @@ void Cache::complete_commit(
   for (auto &i: t.retired_set) {
     auto &extent = i.extent;
     extent->dirty_from_or_retired_at = start_seq;
-    if (is_backref_mapped_extent_node(extent) ||
+    if (is_backref_mapped_type(extent->get_type()) ||
         is_retired_placeholder_type(extent->get_type())) {
       DEBUGT("backref_entry free {} len 0x{:x}",
             t,
index 085a519cb68bc57225d194d3e763e5aa0f383a81..ab2492f5bb67df280e686f405d01b09f2795286c 100644 (file)
@@ -38,12 +38,6 @@ void intrusive_ptr_release(CachedExtent *ptr)
 
 #endif
 
-bool is_backref_mapped_extent_node(const CachedExtentRef &extent) {
-  return extent->is_logical()
-    || is_lba_node(extent->get_type())
-    || extent->get_type() == extent_types_t::TEST_BLOCK_PHYSICAL;
-}
-
 std::ostream &operator<<(std::ostream &out, CachedExtent::extent_state_t state)
 {
   switch (state) {
index 782afa19d33aed3714994afaef148fa9256b36c8..f9356f40b830fc51babb08692167eee7ce94f112 100644 (file)
@@ -1097,8 +1097,6 @@ protected:
 std::ostream &operator<<(std::ostream &, CachedExtent::extent_state_t);
 std::ostream &operator<<(std::ostream &, const CachedExtent&);
 
-bool is_backref_mapped_extent_node(const CachedExtentRef &extent);
-
 /// Compare extents by paddr
 struct paddr_cmp {
   bool operator()(paddr_t lhs, const CachedExtent &rhs) const {
index 729dc6d85e72eaeef6801c3fe804d31f34850b15..98a37cdd33ca3ed1df5f7ba094b5fbcc557983cd 100644 (file)
@@ -1468,6 +1468,23 @@ constexpr bool is_physical_type(extent_types_t type) {
   }
 }
 
+constexpr bool is_backref_mapped_type(extent_types_t type) {
+  if ((type >= extent_types_t::LADDR_INTERNAL &&
+       type <= extent_types_t::OBJECT_DATA_BLOCK) ||
+      type == extent_types_t::TEST_BLOCK ||
+      type == extent_types_t::TEST_BLOCK_PHYSICAL) {
+    assert(is_logical_type(type) ||
+          is_lba_node(type) ||
+          type == extent_types_t::TEST_BLOCK_PHYSICAL);
+    return true;
+  } else {
+    assert(!is_logical_type(type) &&
+          !is_lba_node(type) &&
+          type != extent_types_t::TEST_BLOCK_PHYSICAL);
+    return false;
+  }
+}
+
 constexpr bool is_real_type(extent_types_t type) {
   if (type <= extent_types_t::OBJECT_DATA_BLOCK ||
       (type >= extent_types_t::TEST_BLOCK &&