]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd/pg_recovery: avoid using create_part_trigger() directly
authorSamuel Just <sjust@redhat.com>
Sat, 7 May 2022 01:05:15 +0000 (18:05 -0700)
committerSamuel Just <sjust@redhat.com>
Sat, 7 May 2022 01:05:15 +0000 (18:05 -0700)
AggregateBlockingEvent::TriggerI::maybe_record_blocking() should handle
invoking create_part_trigger().

Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/osd/pg_recovery.cc
src/crimson/osd/recovery_backend.h

index 9ebcad8c0c81cd8b33eb686f7e1f36a5543d9967..4b0c3f0fbac3367966ff1e34c0cbfff06ec2c35e 100644 (file)
@@ -156,8 +156,7 @@ size_t PGRecovery::start_primary_recovery_ops(
     // TODO: handle lost/unfound
     if (pg->get_recovery_backend()->is_recovering(soid)) {
       auto& recovery_waiter = pg->get_recovery_backend()->get_recovering(soid);
-      out->emplace_back(recovery_waiter.wait_for_recovered(
-       *trigger.create_part_trigger()));
+      out->emplace_back(recovery_waiter.wait_for_recovered(trigger));
       ++started;
     } else if (pg->get_recovery_backend()->is_recovering(head)) {
       ++skipped;
@@ -225,8 +224,7 @@ size_t PGRecovery::start_replica_recovery_ops(
       if (pg->get_recovery_backend()->is_recovering(soid)) {
        logger().debug("{}: already recovering object {}", __func__, soid);
        auto& recovery_waiter = pg->get_recovery_backend()->get_recovering(soid);
-       out->emplace_back(recovery_waiter.wait_for_recovered(
-         *trigger.create_part_trigger()));
+       out->emplace_back(recovery_waiter.wait_for_recovered(trigger));
        started++;
        continue;
       }
index a2b2df71168e99356955de0e4e8aae37547141e8..5be55564ad05314b7272912119d9ef8313750cb8 100644 (file)
@@ -150,7 +150,8 @@ public:
        std::forward<F>(fut)
       ).finally([ref] {});
     }
-    seastar::future<> wait_for_recovered(BlockingEvent::TriggerI& trigger) {
+    template <typename T>
+    seastar::future<> wait_for_recovered(T &trigger) {
       WaitForObjectRecoveryRef ref = this;
       return wait_track_blocking(trigger, recovered.get_shared_future());
     }