]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/cache: no need to add extents to Cache::extent_index
authorXuehan Xu <xuxuehan@qianxin.com>
Sat, 2 Aug 2025 14:32:13 +0000 (22:32 +0800)
committerXuehan Xu <xxhdx1985126@gmail.com>
Tue, 12 Aug 2025 05:43:25 +0000 (13:43 +0800)
once SeaStore is fully booted

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

index cb1d43e0e7ac58f8a7e7faf055eb406ff6e93d01..0ffa689759afad34c2bb4dc500d1d9cc57884964 100644 (file)
@@ -742,7 +742,9 @@ void Cache::add_extent(CachedExtentRef ref)
   assert(ref->rewrite_generation == NULL_GENERATION);
   assert(ref->get_paddr().is_absolute() ||
          ref->get_paddr().is_root());
-  extents_index.insert(*ref);
+  if (booting) {
+    extents_index.insert(*ref);
+  }
 }
 
 void Cache::mark_dirty(CachedExtentRef ref)
@@ -884,7 +886,9 @@ void Cache::remove_extent(
     assert(ref->get_paddr().is_absolute());
     pinboard->remove(*ref);
   }
-  extents_index.erase(*ref);
+  if (ref->is_linked_to_index()) {
+    extents_index.erase(*ref);
+  }
 }
 
 void Cache::commit_retire_extent(
@@ -906,7 +910,9 @@ void Cache::commit_replace_extent(
   assert(next->get_paddr() == prev->get_paddr());
   assert(next->get_paddr().is_absolute() || next->get_paddr().is_root());
   assert(next->version == prev->version + 1);
-  extents_index.replace(*next, *prev);
+  if (booting) {
+    extents_index.replace(*next, *prev);
+  }
 
   const auto t_src = t.get_src();
   if (is_root_type(prev->get_type())) {