From 56023c346cbe6e212885b855e92ca5b5ae319916 Mon Sep 17 00:00:00 2001 From: Zhang Song Date: Mon, 18 Aug 2025 19:16:32 +0800 Subject: [PATCH] crimson/os/seastore: don't apply backref extents' alloc deltas to cache Signed-off-by: Zhang Song --- src/crimson/os/seastore/cache.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/crimson/os/seastore/cache.cc b/src/crimson/os/seastore/cache.cc index 255dd9406be76..522a59b62e7d2 100644 --- a/src/crimson/os/seastore/cache.cc +++ b/src/crimson/os/seastore/cache.cc @@ -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 { -- 2.39.5