From 364faaf3f87cded8a8cc0c0554b8152ea6d6e82f Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Fri, 27 Aug 2021 13:56:42 -0700 Subject: [PATCH] crimson/os/seastore/cache: retire_extent_addr: add addr asserts retire_extent_addr can only be called on absolute or record-relative addrs. Record-relative addrs are only valid on extents allocated as part of the current transaction. Signed-off-by: Samuel Just --- src/crimson/os/seastore/cache.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/crimson/os/seastore/cache.cc b/src/crimson/os/seastore/cache.cc index 2f1d1892cbf8d..24eddfb2643fb 100644 --- a/src/crimson/os/seastore/cache.cc +++ b/src/crimson/os/seastore/cache.cc @@ -38,6 +38,8 @@ Cache::~Cache() Cache::retire_extent_ret Cache::retire_extent_addr( Transaction &t, paddr_t addr, extent_len_t length) { + assert(addr.is_real() && !addr.is_block_relative()); + LOG_PREFIX(Cache::retire_extent); CachedExtentRef ext; auto result = t.get_extent(addr, &ext); @@ -50,6 +52,9 @@ Cache::retire_extent_ret Cache::retire_extent_addr( ceph_abort(); } + // any relative addr must have been on the transaction + assert(!addr.is_relative()); + // absent from transaction // retiring is not included by the cache hit metrics ext = query_cache(addr, nullptr); -- 2.39.5