From: Radosław Zarzyński Date: Wed, 13 Apr 2022 07:26:29 +0000 (+0200) Subject: crimson/osd: PGActivationBlocker does support new tracking infra X-Git-Tag: v18.0.0~947^2~25 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8eedc17097c46c306d65ec247614ae7f0dcf3134;p=ceph.git crimson/osd: PGActivationBlocker does support new tracking infra Signed-off-by: Radosław Zarzyński --- diff --git a/src/crimson/osd/pg_activation_blocker.cc b/src/crimson/osd/pg_activation_blocker.cc index 504754a8ddc..4d52d1ffc13 100644 --- a/src/crimson/osd/pg_activation_blocker.cc +++ b/src/crimson/osd/pg_activation_blocker.cc @@ -17,6 +17,16 @@ void PGActivationBlocker::on_active() p = {}; } +seastar::future<> +PGActivationBlocker::wait(PGActivationBlocker::BlockingEvent::TriggerI&& trigger) +{ + if (pg->get_peering_state().is_active()) { + return seastar::now(); + } else { + return trigger.maybe_record_blocking(p.get_shared_future(), *this); + } +} + blocking_future<> PGActivationBlocker::wait() { if (pg->get_peering_state().is_active()) { diff --git a/src/crimson/osd/pg_activation_blocker.h b/src/crimson/osd/pg_activation_blocker.h index 4b5254fd26a..a8a3ae20ea8 100644 --- a/src/crimson/osd/pg_activation_blocker.h +++ b/src/crimson/osd/pg_activation_blocker.h @@ -28,6 +28,7 @@ public: PGActivationBlocker(PG *pg) : pg(pg) {} void on_active(); blocking_future<> wait(); + seastar::future<> wait(PGActivationBlocker::BlockingEvent::TriggerI&&); seastar::future<> stop(); };