]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: PGActivationBlocker does support new tracking infra
authorRadosław Zarzyński <rzarzyns@redhat.com>
Wed, 13 Apr 2022 07:26:29 +0000 (09:26 +0200)
committerRadosław Zarzyński <rzarzyns@redhat.com>
Thu, 5 May 2022 02:06:31 +0000 (04:06 +0200)
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
src/crimson/osd/pg_activation_blocker.cc
src/crimson/osd/pg_activation_blocker.h

index 504754a8ddcd81eea86b6311729205d6ef20897b..4d52d1ffc13c5c8d9b976b0d87f5050cf8b23016 100644 (file)
@@ -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()) {
index 4b5254fd26a85b75ce705702bb2cf5ff54fb4865..a8a3ae20ea8a21415505736aeb047f7f32e570ce 100644 (file)
@@ -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();
 };