From: Radoslaw Zarzynski Date: Wed, 4 Mar 2020 07:20:38 +0000 (+0100) Subject: crimson/osd, osd: switch request_remote_recovery_reservation() to uptr. X-Git-Tag: wip-pdonnell-testing-20200918.022351~657^2~30 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e07daf7a4d6f6fd524461e350ade702792982e1b;p=ceph-ci.git crimson/osd, osd: switch request_remote_recovery_reservation() to uptr. Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/crimson/osd/pg.h b/src/crimson/osd/pg.h index 3b7df08fdaf..201dea5139f 100644 --- a/src/crimson/osd/pg.h +++ b/src/crimson/osd/pg.h @@ -230,8 +230,8 @@ public: 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) { diff --git a/src/osd/PG.cc b/src/osd/PG.cc index cb6da21cc85..59b133e0d08 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -1645,15 +1645,15 @@ void PG::cancel_local_background_io_reservation() { 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() { diff --git a/src/osd/PG.h b/src/osd/PG.h index 170e8b8f1f7..1177b9c22fe 100644 --- a/src/osd/PG.h +++ b/src/osd/PG.h @@ -415,8 +415,8 @@ public: 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( diff --git a/src/osd/PeeringState.cc b/src/osd/PeeringState.cc index 8db3db7625a..ecf9c3c6368 100644 --- a/src/osd/PeeringState.cc +++ b/src/osd/PeeringState.cc @@ -5027,21 +5027,21 @@ PeeringState::RepNotRecovering::react(const RequestBackfillPrio &evt) 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( + preempt = std::make_unique( pl->get_osdmap_epoch(), pl->get_osdmap_epoch(), RemoteBackfillPreempted()); } pl->request_remote_recovery_reservation( evt.priority, - std::make_shared( + std::make_unique( pl->get_osdmap_epoch(), pl->get_osdmap_epoch(), RemoteBackfillReserved()), - preempt); + std::move(preempt)); } return transit(); } @@ -5055,10 +5055,10 @@ PeeringState::RepNotRecovering::react(const RequestRecoveryPrio &evt) // (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( + preempt = std::make_unique( ps->get_osdmap_epoch(), ps->get_osdmap_epoch(), RemoteRecoveryPreempted()); @@ -5066,11 +5066,11 @@ PeeringState::RepNotRecovering::react(const RequestRecoveryPrio &evt) pl->request_remote_recovery_reservation( prio, - std::make_shared( + std::make_unique( ps->get_osdmap_epoch(), ps->get_osdmap_epoch(), RemoteRecoveryReserved()), - preempt); + std::move(preempt)); return transit(); } diff --git a/src/osd/PeeringState.h b/src/osd/PeeringState.h index 1944f9de429..6a02a052757 100644 --- a/src/osd/PeeringState.h +++ b/src/osd/PeeringState.h @@ -326,8 +326,8 @@ public: */ 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;