From e6d3659021dc17cdb5712d58787f3aaf54ebe8a4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rados=C5=82aw=20Zarzy=C5=84ski?= Date: Thu, 7 Sep 2023 12:07:13 +0200 Subject: [PATCH] osd: refactor accessors of RecoveryBackend::temp_contents MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 1. Move some of them to .cc and 2. switch their implementations to use lower-layer methods instead of touching `temp_contents` directly. Signed-off-by: Radosław Zarzyński --- src/crimson/osd/pg_backend.h | 18 ++++++++++++++++++ src/crimson/osd/recovery_backend.cc | 10 ++++++++++ src/crimson/osd/recovery_backend.h | 9 +++------ 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/crimson/osd/pg_backend.h b/src/crimson/osd/pg_backend.h index 981a983075b..de7223173f1 100644 --- a/src/crimson/osd/pg_backend.h +++ b/src/crimson/osd/pg_backend.h @@ -450,4 +450,22 @@ private: std::vector&& log_entries) = 0; friend class ReplicatedRecoveryBackend; friend class ::crimson::osd::PG; + +protected: + boost::container::flat_set temp_contents; + + template + void add_temp_obj(Args&&... args) { + temp_contents.insert(std::forward(args)...); + } + void clear_temp_obj(const hobject_t &oid) { + temp_contents.erase(oid); + } + template + void clear_temp_objs(const T &cont) { + for (const auto& oid : cont) { + clear_temp_obj(oid); + } + } + friend class RecoveryBackend; }; diff --git a/src/crimson/osd/recovery_backend.cc b/src/crimson/osd/recovery_backend.cc index b5394bfdc48..c9d7246f2f5 100644 --- a/src/crimson/osd/recovery_backend.cc +++ b/src/crimson/osd/recovery_backend.cc @@ -32,6 +32,16 @@ hobject_t RecoveryBackend::get_temp_recovery_object( return hoid; } +void RecoveryBackend::add_temp_obj(const hobject_t &oid) +{ + backend->add_temp_obj(oid); +} + +void RecoveryBackend::clear_temp_obj(const hobject_t &oid) +{ + backend->clear_temp_obj(oid); +} + void RecoveryBackend::clean_up(ceph::os::Transaction& t, std::string_view why) { diff --git a/src/crimson/osd/recovery_backend.h b/src/crimson/osd/recovery_backend.h index abf69589159..7d219a8d9ec 100644 --- a/src/crimson/osd/recovery_backend.h +++ b/src/crimson/osd/recovery_backend.h @@ -201,12 +201,9 @@ protected: boost::container::flat_set temp_contents; - void add_temp_obj(const hobject_t &oid) { - temp_contents.insert(oid); - } - void clear_temp_obj(const hobject_t &oid) { - temp_contents.erase(oid); - } + void add_temp_obj(const hobject_t &oid); + void clear_temp_obj(const hobject_t &oid); + void clean_up(ceph::os::Transaction& t, std::string_view why); virtual seastar::future<> on_stop() = 0; private: -- 2.47.3