From: Xuehan Xu Date: Wed, 13 May 2026 11:51:58 +0000 (+0800) Subject: crimson/os/seastore: drop backref when all backends are RBMs X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2b1c4e8d0cb65a87c35e765f81b9c51bf7a88143;p=ceph-ci.git crimson/os/seastore: drop backref when all backends are RBMs Signed-off-by: Xuehan Xu --- diff --git a/src/crimson/os/seastore/async_cleaner.h b/src/crimson/os/seastore/async_cleaner.h index 59f0311a72b..1efc06b3c57 100644 --- a/src/crimson/os/seastore/async_cleaner.h +++ b/src/crimson/os/seastore/async_cleaner.h @@ -702,7 +702,7 @@ private: } bool can_drop_backref() const { - return get_backend_type() == backend_type_t::RANDOM_BLOCK; + return !tail_include_alloc; } bool should_trim_alloc() const { diff --git a/src/crimson/os/seastore/extent_placement_manager.h b/src/crimson/os/seastore/extent_placement_manager.h index 8e62babcff2..9cc588a44bb 100644 --- a/src/crimson/os/seastore/extent_placement_manager.h +++ b/src/crimson/os/seastore/extent_placement_manager.h @@ -669,8 +669,9 @@ public: bool is_pure_rbm() const { return get_main_backend_type() == backend_type_t::RANDOM_BLOCK && - // as of now, cold tier can only be segmented. - !background_process.has_cold_tier(); + (!background_process.has_cold_tier() || + (background_process.get_cold_tier_backend_type() == + backend_type_t::RANDOM_BLOCK)); } bool has_cold_tier() const { @@ -923,6 +924,11 @@ private: return cold_cleaner.get() != nullptr; } + backend_type_t get_cold_tier_backend_type() const { + assert(cold_cleaner); + return cold_cleaner->get_backend_type(); + } + bool is_cold_device(device_id_t id) const { if (!has_cold_tier()) { return false;