return true;
}
-bool OSD::require_osd_peer(OpRequestRef& op)
+bool OSD::require_osd_peer(Message *m)
{
- if (!op->get_req()->get_connection()->peer_is_osd()) {
- dout(0) << "require_osd_peer received from non-osd " << op->get_req()->get_connection()->get_peer_addr()
- << " " << *op->get_req() << dendl;
+ if (!m->get_connection()->peer_is_osd()) {
+ dout(0) << "require_osd_peer received from non-osd "
+ << m->get_connection()->get_peer_addr()
+ << " " << *m << dendl;
return false;
}
return true;
}
-bool OSD::require_self_aliveness(OpRequestRef& op, epoch_t epoch)
+bool OSD::require_self_aliveness(Message *m, epoch_t epoch)
{
if (epoch < up_epoch) {
dout(7) << "from pre-up epoch " << epoch << " < " << up_epoch << dendl;
}
if (!is_active()) {
- dout(7) << "still in boot state, dropping message " << *op->get_req() << dendl;
+ dout(7) << "still in boot state, dropping message " << *m << dendl;
return false;
}
return true;
}
-bool OSD::require_same_peer_instance(OpRequestRef& op, OSDMapRef& map)
+bool OSD::require_same_peer_instance(Message *m, OSDMapRef& map)
{
- Message *m = op->get_req();
int from = m->get_source().num();
if (!map->have_inst(from) ||
return true;
}
-bool OSD::require_up_osd_peer(OpRequestRef& op, OSDMapRef& map,
+bool OSD::require_up_osd_peer(Message *m, OSDMapRef& map,
epoch_t their_epoch)
{
- if (!require_self_aliveness(op, their_epoch)) {
+ if (!require_self_aliveness(m, their_epoch)) {
return false;
- } else if (!require_osd_peer(op)) {
+ } else if (!require_osd_peer(m)) {
return false;
} else if (map->get_epoch() >= their_epoch &&
- !require_same_peer_instance(op, map)) {
+ !require_same_peer_instance(m, map)) {
return false;
}
return true;
return false;
}
- if (!require_self_aliveness(op, epoch)) {
+ if (!require_self_aliveness(op->get_req(), epoch)) {
return false;
}
// ok, our map is same or newer.. do they still exist?
if (m->get_connection()->get_messenger() == cluster_messenger &&
- !require_same_peer_instance(op, osdmap)) {
+ !require_same_peer_instance(op->get_req(), osdmap)) {
return false;
}
dout(7) << "handle_pg_notify from " << m->get_source() << dendl;
int from = m->get_source().num();
- if (!require_osd_peer(op))
+ if (!require_osd_peer(op->get_req()))
return;
if (!require_same_or_newer_map(op, m->get_epoch())) return;
assert(m->get_header().type == MSG_OSD_PG_LOG);
dout(7) << "handle_pg_log " << *m << " from " << m->get_source() << dendl;
- if (!require_osd_peer(op))
+ if (!require_osd_peer(op->get_req()))
return;
int from = m->get_source().num();
assert(m->get_header().type == MSG_OSD_PG_INFO);
dout(7) << "handle_pg_info " << *m << " from " << m->get_source() << dendl;
- if (!require_osd_peer(op))
+ if (!require_osd_peer(op->get_req()))
return;
int from = m->get_source().num();
dout(7) << "handle_pg_trim " << *m << " from " << m->get_source() << dendl;
- if (!require_osd_peer(op))
+ if (!require_osd_peer(op->get_req()))
return;
int from = m->get_source().num();
assert(m->get_header().type == MSG_OSD_PG_SCAN);
dout(10) << "handle_pg_scan " << *m << " from " << m->get_source() << dendl;
- if (!require_osd_peer(op))
+ if (!require_osd_peer(op->get_req()))
return;
if (!require_same_or_newer_map(op, m->query_epoch))
return;
assert(m->get_header().type == MSG_OSD_PG_BACKFILL);
dout(10) << "handle_pg_backfill " << *m << " from " << m->get_source() << dendl;
- if (!require_osd_peer(op))
+ if (!require_osd_peer(op->get_req()))
return;
if (!require_same_or_newer_map(op, m->query_epoch))
return;
MBackfillReserve *m = static_cast<MBackfillReserve*>(op->get_req());
assert(m->get_header().type == MSG_OSD_BACKFILL_RESERVE);
- if (!require_osd_peer(op))
+ if (!require_osd_peer(op->get_req()))
return;
if (!require_same_or_newer_map(op, m->query_epoch))
return;
MRecoveryReserve *m = static_cast<MRecoveryReserve*>(op->get_req());
assert(m->get_header().type == MSG_OSD_RECOVERY_RESERVE);
- if (!require_osd_peer(op))
+ if (!require_osd_peer(op->get_req()))
return;
if (!require_same_or_newer_map(op, m->query_epoch))
return;
MOSDPGQuery *m = (MOSDPGQuery*)op->get_req();
assert(m->get_header().type == MSG_OSD_PG_QUERY);
- if (!require_osd_peer(op))
+ if (!require_osd_peer(op->get_req()))
return;
dout(7) << "handle_pg_query from " << m->get_source() << " epoch " << m->get_epoch() << dendl;
assert(m->get_header().type == MSG_OSD_PG_REMOVE);
assert(osd_lock.is_locked());
- if (!require_osd_peer(op))
+ if (!require_osd_peer(op->get_req()))
return;
dout(7) << "handle_pg_remove from " << m->get_source() << " on "
return;
}
- if (!require_up_osd_peer(op, osdmap, m->map_epoch))
+ if (!require_up_osd_peer(op->get_req(), osdmap, m->map_epoch))
return;
// must be a rep op.
void repeer(PG *pg, map< int, map<spg_t,pg_query_t> >& query_map);
bool require_mon_peer(Message *m);
- bool require_osd_peer(OpRequestRef& op);
+ bool require_osd_peer(Message *m);
/***
* Verifies that we were alive in the given epoch, and that
* still are.
*/
- bool require_self_aliveness(OpRequestRef& op, epoch_t alive_since);
+ bool require_self_aliveness(Message *m, epoch_t alive_since);
/**
* Verifies that the OSD who sent the given op has the same
* address as in the given map.
* @pre op was sent by an OSD using the cluster messenger
*/
- bool require_same_peer_instance(OpRequestRef& op, OSDMapRef& map);
- bool require_up_osd_peer(OpRequestRef& Op, OSDMapRef& map,
+ bool require_same_peer_instance(Message *m, OSDMapRef& map);
+ bool require_up_osd_peer(Message *m, OSDMapRef& map,
epoch_t their_epoch);
bool require_same_or_newer_map(OpRequestRef& op, epoch_t e);