]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/os/seastore: don't apply backref extents' alloc deltas to cache
authorZhang Song <zhangsong02@qianxin.com>
Mon, 18 Aug 2025 11:16:32 +0000 (19:16 +0800)
committerZhang Song <zhangsong02@qianxin.com>
Mon, 18 Aug 2025 11:17:40 +0000 (19:17 +0800)
Signed-off-by: Zhang Song <zhangsong02@qianxin.com>
src/crimson/os/seastore/cache.cc

index 255dd9406be76022462835fc61e7cd07112470e9..522a59b62e7d225f9b38b62e7fd848d210156d9b 100644 (file)
@@ -2050,6 +2050,14 @@ Cache::replay_delta(
     decode(alloc_delta, delta.bl);
     backref_entry_refs_t backref_entries;
     for (auto &alloc_blk : alloc_delta.alloc_blk_ranges) {
+      if (is_backref_node(alloc_blk.type)) {
+       // On startup, BackrefManager::scan_mapped_space() will scan all
+       // mappings and internal entries to rebuild the space management.
+       // It's unnecessary to apply the alloc deltas of backref extents
+       // to the cached backref entries and these deltas are only used
+       // to skip invalid deltas for RBM backends.
+       continue;
+      }
       if (alloc_blk.paddr.is_record_relative()) {
        alloc_blk.paddr = record_base.add_relative(alloc_blk.paddr);
       } else {