void request_remote_recovery_reservation(
unsigned priority,
- PGPeeringEventRef on_grant,
- PGPeeringEventRef on_preempt) final {
+ PGPeeringEventURef on_grant,
+ PGPeeringEventURef on_preempt) final {
shard_services.remote_reserver.request_reservation(
pgid,
on_grant ? make_lambda_context([this, on_grant=std::move(on_grant)] (int) {
void PG::request_remote_recovery_reservation(
unsigned priority,
- PGPeeringEventRef on_grant,
- PGPeeringEventRef on_preempt) {
+ PGPeeringEventURef on_grant,
+ PGPeeringEventURef on_preempt) {
osd->remote_reserver.request_reservation(
pg_id,
on_grant ? new QueuePeeringEvt(
- this, on_grant) : nullptr,
+ this, std::move(on_grant)) : nullptr,
priority,
on_preempt ? new QueuePeeringEvt(
- this, on_preempt) : nullptr);
+ this, std::move(on_preempt)) : nullptr);
}
void PG::cancel_remote_recovery_reservation() {
void request_remote_recovery_reservation(
unsigned priority,
- PGPeeringEventRef on_grant,
- PGPeeringEventRef on_preempt) override;
+ PGPeeringEventURef on_grant,
+ PGPeeringEventURef on_preempt) override;
void cancel_remote_recovery_reservation() override;
void schedule_event_on_commit(
evt.primary_num_bytes, evt.local_num_bytes)) {
post_event(RejectTooFullRemoteReservation());
} else {
- PGPeeringEventRef preempt;
+ PGPeeringEventURef preempt;
if (HAVE_FEATURE(ps->upacting_features, RECOVERY_RESERVATION_2)) {
// older peers will interpret preemption as TOOFULL
- preempt = std::make_shared<PGPeeringEvent>(
+ preempt = std::make_unique<PGPeeringEvent>(
pl->get_osdmap_epoch(),
pl->get_osdmap_epoch(),
RemoteBackfillPreempted());
}
pl->request_remote_recovery_reservation(
evt.priority,
- std::make_shared<PGPeeringEvent>(
+ std::make_unique<PGPeeringEvent>(
pl->get_osdmap_epoch(),
pl->get_osdmap_epoch(),
RemoteBackfillReserved()),
- preempt);
+ std::move(preempt));
}
return transit<RepWaitBackfillReserved>();
}
// (pre-mimic compat)
int prio = evt.priority ? evt.priority : ps->get_recovery_priority();
- PGPeeringEventRef preempt;
+ PGPeeringEventURef preempt;
if (HAVE_FEATURE(ps->upacting_features, RECOVERY_RESERVATION_2)) {
// older peers can't handle this
- preempt = std::make_shared<PGPeeringEvent>(
+ preempt = std::make_unique<PGPeeringEvent>(
ps->get_osdmap_epoch(),
ps->get_osdmap_epoch(),
RemoteRecoveryPreempted());
pl->request_remote_recovery_reservation(
prio,
- std::make_shared<PGPeeringEvent>(
+ std::make_unique<PGPeeringEvent>(
ps->get_osdmap_epoch(),
ps->get_osdmap_epoch(),
RemoteRecoveryReserved()),
- preempt);
+ std::move(preempt));
return transit<RepWaitRecoveryReserved>();
}
*/
virtual void request_remote_recovery_reservation(
unsigned priority,
- PGPeeringEventRef on_grant,
- PGPeeringEventRef on_preempt) = 0;
+ PGPeeringEventURef on_grant,
+ PGPeeringEventURef on_preempt) = 0;
/// Cancel pending remote background reservation request
virtual void cancel_remote_recovery_reservation() = 0;