From: Matan Breizman Date: Mon, 22 Sep 2025 11:50:09 +0000 (+0000) Subject: crimson/os/seastore/async_cleaner: Introduce get_segments_info X-Git-Tag: v21.0.0~209^2~76^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bb6d9585c4247f17e53e13bab579cf2ed71f9595;p=ceph.git crimson/os/seastore/async_cleaner: Introduce get_segments_info Allow getting the current segments information maintained by the SegmentCleaner. Use raw pointer instead of a reference in order to wrap it in an std::optional. Signed-off-by: Matan Breizman --- diff --git a/src/crimson/os/seastore/async_cleaner.h b/src/crimson/os/seastore/async_cleaner.h index 8d08054bc5a3..3af963951cc2 100644 --- a/src/crimson/os/seastore/async_cleaner.h +++ b/src/crimson/os/seastore/async_cleaner.h @@ -1183,6 +1183,8 @@ public: virtual void set_extent_callback(ExtentCallbackInterface *) = 0; + virtual const segments_info_t* get_segments_info() const = 0; + virtual store_statfs_t get_stat() const = 0; virtual void print(std::ostream &, bool is_detailed) const = 0; @@ -1350,6 +1352,10 @@ public: extent_callback = cb; } + const segments_info_t* get_segments_info() const final { + return &segments; + } + store_statfs_t get_stat() const final { store_statfs_t st; st.total = segments.get_total_bytes(); @@ -1712,6 +1718,10 @@ public: extent_callback = cb; } + const segments_info_t* get_segments_info() const final { + return nullptr; + } + store_statfs_t get_stat() const final { store_statfs_t st; st.total = get_total_bytes(); diff --git a/src/crimson/os/seastore/extent_placement_manager.h b/src/crimson/os/seastore/extent_placement_manager.h index f578fd5c7a9a..e603ccf9d436 100644 --- a/src/crimson/os/seastore/extent_placement_manager.h +++ b/src/crimson/os/seastore/extent_placement_manager.h @@ -727,6 +727,10 @@ private: return trimmer->get_backend_type(); } + const segments_info_t* get_segments_info() const { + return main_cleaner->get_segments_info(); + } + bool has_cold_tier() const { return cold_cleaner.get() != nullptr; }