#include "messages/MOSDPGUpdateLogMissing.h"
#include "messages/MOSDPGUpdateLogMissingReply.h"
+#include "messages/MOSDPeeringOp.h"
+
#include "messages/MOSDAlive.h"
#include "messages/MOSDScrub.h"
m->put();
return;
}
+
+ // peering event?
+ switch (m->get_type()) {
+ case MSG_OSD_BACKFILL_RESERVE:
+ case MSG_OSD_RECOVERY_RESERVE:
+ {
+ MOSDPeeringOp *pm = static_cast<MOSDPeeringOp*>(m);
+ return enqueue_peering_evt(
+ pm->get_spg(),
+ PGPeeringEventRef(pm->get_event()));
+ }
+ }
+
OpRequestRef op = op_tracker.create_request<OpRequest, Message*>(m);
{
#ifdef WITH_LTTNG
case MSG_OSD_PG_TRIM:
handle_pg_trim(op);
break;
- case MSG_OSD_BACKFILL_RESERVE:
- handle_pg_backfill_reserve(op);
- break;
- case MSG_OSD_RECOVERY_RESERVE:
- handle_pg_recovery_reserve(op);
- break;
}
}
pg->unlock();
}
-void OSD::handle_pg_backfill_reserve(OpRequestRef op)
-{
- MBackfillReserve *m = static_cast<MBackfillReserve*>(op->get_nonconst_req());
- assert(m->get_type() == MSG_OSD_BACKFILL_RESERVE);
-
- if (!require_osd_peer(op->get_req()))
- return;
- if (!require_same_or_newer_map(op, m->query_epoch, false))
- return;
-
- PGPeeringEventRef evt(m->get_event());
-
- enqueue_peering_evt(m->pgid, evt);
-}
-
-void OSD::handle_pg_recovery_reserve(OpRequestRef op)
-{
- MRecoveryReserve *m = static_cast<MRecoveryReserve*>(op->get_nonconst_req());
- assert(m->get_type() == MSG_OSD_RECOVERY_RESERVE);
-
- if (!require_osd_peer(op->get_req()))
- return;
- if (!require_same_or_newer_map(op, m->query_epoch, false))
- return;
-
- PGPeeringEventRef evt(m->get_event());
-
- enqueue_peering_evt(m->pgid, evt);
-}
-
void OSD::handle_force_recovery(Message *m)
{
MOSDForceRecovery *msg = static_cast<MOSDForceRecovery*>(m);
void handle_pg_info(OpRequestRef op);
void handle_pg_trim(OpRequestRef op);
- void handle_pg_backfill_reserve(OpRequestRef op);
- void handle_pg_recovery_reserve(OpRequestRef op);
-
void handle_force_recovery(Message *m);
void handle_pg_remove(OpRequestRef op);
switch (m->get_type()) {
case CEPH_MSG_OSD_OP:
case CEPH_MSG_OSD_BACKOFF:
+ case MSG_OSD_BACKFILL_RESERVE:
+ case MSG_OSD_RECOVERY_RESERVE:
case MSG_OSD_REPOP:
case MSG_OSD_REPOPREPLY:
case MSG_OSD_PG_PUSH: