From: Matan Breizman Date: Tue, 8 Nov 2022 09:43:32 +0000 (+0000) Subject: crimson/osd/pg: Use ObjectContextLoader::notify_on_change() X-Git-Tag: v18.1.0~798^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b64c49f942b164741b225842ff14530056061ecb;p=ceph.git 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 --- diff --git a/src/crimson/osd/object_context_loader.cc b/src/crimson/osd/object_context_loader.cc index 246c20fcfe51..81edc3c74a8e 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 7771da3cde40..7c572229ac92 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 b8420ef3f4e0..e554bd7d9bc3 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 000844aa271a..56235b73b35f 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,