From: Samuel Just Date: Sat, 7 May 2022 01:05:15 +0000 (-0700) Subject: crimson/osd/pg_recovery: avoid using create_part_trigger() directly X-Git-Tag: v18.0.0~937^2~3 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=df9827eba86063f0006b0c7ccf7d3117c49248e0;p=ceph.git crimson/osd/pg_recovery: avoid using create_part_trigger() directly AggregateBlockingEvent::TriggerI::maybe_record_blocking() should handle invoking create_part_trigger(). Signed-off-by: Samuel Just --- diff --git a/src/crimson/osd/pg_recovery.cc b/src/crimson/osd/pg_recovery.cc index 9ebcad8c0c81c..4b0c3f0fbac33 100644 --- a/src/crimson/osd/pg_recovery.cc +++ b/src/crimson/osd/pg_recovery.cc @@ -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; } diff --git a/src/crimson/osd/recovery_backend.h b/src/crimson/osd/recovery_backend.h index a2b2df71168e9..5be55564ad053 100644 --- a/src/crimson/osd/recovery_backend.h +++ b/src/crimson/osd/recovery_backend.h @@ -150,7 +150,8 @@ public: std::forward(fut) ).finally([ref] {}); } - seastar::future<> wait_for_recovered(BlockingEvent::TriggerI& trigger) { + template + seastar::future<> wait_for_recovered(T &trigger) { WaitForObjectRecoveryRef ref = this; return wait_track_blocking(trigger, recovered.get_shared_future()); }