From b64c49f942b164741b225842ff14530056061ecb Mon Sep 17 00:00:00 2001 From: Matan Breizman Date: Tue, 8 Nov 2022 09:43:32 +0000 Subject: [PATCH] crimson/osd/pg: Use ObjectContextLoader::notify_on_change() obc_set_accessing is owned by ObjectContextLoader and is removed from PG. Signed-off-by: Matan Breizman --- src/crimson/osd/object_context_loader.cc | 7 +++++++ src/crimson/osd/object_context_loader.h | 2 ++ src/crimson/osd/pg.cc | 4 +--- src/crimson/osd/pg.h | 5 ----- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/crimson/osd/object_context_loader.cc b/src/crimson/osd/object_context_loader.cc index 246c20fcfe5..81edc3c74a8 100644 --- a/src/crimson/osd/object_context_loader.cc +++ b/src/crimson/osd/object_context_loader.cc @@ -155,6 +155,13 @@ using crimson::common::local_conf; }); } + void ObjectContextLoader::notify_on_change(bool is_primary) + { + for (auto& obc : obc_set_accessing) { + obc.interrupt(::crimson::common::actingset_changed(is_primary)); + } + } + // explicitly instantiate the used instantiations template ObjectContextLoader::load_obc_iertr::future<> ObjectContextLoader::with_head_obc(hobject_t, diff --git a/src/crimson/osd/object_context_loader.h b/src/crimson/osd/object_context_loader.h index 7771da3cde4..7c572229ac9 100644 --- a/src/crimson/osd/object_context_loader.h +++ b/src/crimson/osd/object_context_loader.h @@ -54,6 +54,8 @@ public: load_obc_iertr::future<> reload_obc(ObjectContext& obc) const; + void notify_on_change(bool is_primary); + private: ShardServices &shard_services; PGBackend* backend; diff --git a/src/crimson/osd/pg.cc b/src/crimson/osd/pg.cc index b8420ef3f4e..e554bd7d9bc 100644 --- a/src/crimson/osd/pg.cc +++ b/src/crimson/osd/pg.cc @@ -1238,9 +1238,7 @@ seastar::future<> PG::stop() void PG::on_change(ceph::os::Transaction &t) { logger().debug("{} {}:", *this, __func__); - for (auto& obc : obc_set_accessing) { - obc.interrupt(::crimson::common::actingset_changed(is_primary())); - } + obc_loader.notify_on_change(is_primary()); recovery_backend->on_peering_interval_change(t); backend->on_actingset_changed({ is_primary() }); wait_for_active_blocker.unblock(); diff --git a/src/crimson/osd/pg.h b/src/crimson/osd/pg.h index 000844aa271..56235b73b35 100644 --- a/src/crimson/osd/pg.h +++ b/src/crimson/osd/pg.h @@ -524,11 +524,6 @@ public: using with_obc_func_t = std::function (ObjectContextRef)>; - using obc_accessing_list_t = boost::intrusive::list< - ObjectContext, - ObjectContext::obc_accessing_option_t>; - obc_accessing_list_t obc_set_accessing; - load_obc_iertr::future<> with_locked_obc( const hobject_t &hobj, const OpInfo &op_info, -- 2.39.5