From 21306e492cada30d2d54bcc0221f82f81f682e9b Mon Sep 17 00:00:00 2001 From: Yingxin Cheng Date: Fri, 27 May 2022 16:42:19 +0800 Subject: [PATCH] crimson/os/seastore/cache: assert dirty Signed-off-by: Yingxin Cheng --- src/crimson/os/seastore/cache.cc | 5 +++-- src/crimson/os/seastore/cache.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/crimson/os/seastore/cache.cc b/src/crimson/os/seastore/cache.cc index 6734b30389a79..b1fee9576e380 100644 --- a/src/crimson/os/seastore/cache.cc +++ b/src/crimson/os/seastore/cache.cc @@ -695,13 +695,13 @@ void Cache::mark_dirty(CachedExtentRef ref) } lru.remove_from_lru(*ref); - add_to_dirty(ref); ref->state = CachedExtent::extent_state_t::DIRTY; + add_to_dirty(ref); } void Cache::add_to_dirty(CachedExtentRef ref) { - assert(ref->is_valid()); + assert(ref->is_dirty()); assert(!ref->primary_ref_list_hook.is_linked()); intrusive_ptr_add_ref(&*ref); dirty.push_back(*ref); @@ -746,6 +746,7 @@ void Cache::commit_replace_extent( CachedExtentRef next, CachedExtentRef prev) { + assert(next->is_dirty()); assert(next->get_paddr() == prev->get_paddr()); assert(next->version == prev->version + 1); extents.replace(*next, *prev); diff --git a/src/crimson/os/seastore/cache.h b/src/crimson/os/seastore/cache.h index ac84df837b39e..d707f7e5737df 100644 --- a/src/crimson/os/seastore/cache.h +++ b/src/crimson/os/seastore/cache.h @@ -667,8 +667,8 @@ public: auto ret = CachedExtent::make_cached_extent_ref(std::move(result.bp)); ret->set_paddr(result.paddr); ret->hint = hint; - t.add_fresh_extent(ret); ret->state = CachedExtent::extent_state_t::INITIAL_WRITE_PENDING; + t.add_fresh_extent(ret); SUBDEBUGT(seastore_cache, "allocated {} {}B extent at {}, hint={} -- {}", t, T::TYPE, length, result.paddr, hint, *ret); return ret; -- 2.39.5