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=e4979f98ed5be34f4fce9eb17cff27b14e9985bd;p=ceph.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 59f0311a72b2..1efc06b3c575 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 11463df8fb33..8bd25d67219a 100644 --- a/src/crimson/os/seastore/extent_placement_manager.h +++ b/src/crimson/os/seastore/extent_placement_manager.h @@ -689,8 +689,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 { @@ -945,6 +946,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;