}
}
-bool OSD::_should_share_map(entity_name_t name, Connection *con,
- epoch_t epoch, OSDMapRef& osdmap,
- const epoch_t *sent_epoch_p)
+bool OSDService::should_share_map(entity_name_t name, Connection *con,
+ epoch_t epoch, OSDMapRef& osdmap,
+ const epoch_t *sent_epoch_p)
{
bool should_send = false;
- dout(20) << "_should_share_map "
+ dout(20) << "should_share_map "
<< name << " " << con->get_peer_addr()
<< " " << epoch << dendl;
}
}
- if (con->get_messenger() == cluster_messenger &&
+ if (con->get_messenger() == osd->cluster_messenger &&
osdmap->is_up(name.num()) &&
(osdmap->get_cluster_addr(name.num()) == con->get_peer_addr() ||
osdmap->get_hb_back_addr(name.num()) == con->get_peer_addr())) {
// remember
- epoch_t has = get_peer_epoch(name.num());
+ epoch_t has = osd->get_peer_epoch(name.num());
// share?
if (has < osdmap->get_epoch()) {
return should_send;
}
-void OSD::_share_map_incoming(
- entity_name_t name,
- Connection *con,
- epoch_t epoch,
- OSDMapRef& osdmap,
- epoch_t *sent_epoch_p)
+void OSDService::share_map_incoming(
+ entity_name_t name,
+ Connection *con,
+ epoch_t epoch,
+ OSDMapRef& osdmap,
+ epoch_t *sent_epoch_p)
{
- dout(20) << "_share_map_incoming "
+ dout(20) << "share_map_incoming "
<< name << " " << con->get_peer_addr()
<< " " << epoch << dendl;
- assert(is_active());
+ assert(osd->is_active());
- bool want_shared = _should_share_map(name, con, epoch,
- osdmap, sent_epoch_p);
+ bool want_shared = should_share_map(name, con, epoch,
+ osdmap, sent_epoch_p);
if (want_shared){
if (name.is_client()) {
<< " < " << osdmap->get_epoch() << dendl;
// we know the Session is valid or we wouldn't be sending
*sent_epoch_p = osdmap->get_epoch();
- send_incremental_map(epoch, con, osdmap);
- } else if (con->get_messenger() == cluster_messenger &&
+ osd->send_incremental_map(epoch, con, osdmap);
+ } else if (con->get_messenger() == osd->cluster_messenger &&
osdmap->is_up(name.num()) &&
(osdmap->get_cluster_addr(name.num()) == con->get_peer_addr() ||
osdmap->get_hb_back_addr(name.num()) == con->get_peer_addr())) {
dout(10) << name << " " << con->get_peer_addr()
<< " has old map " << epoch << " < "
<< osdmap->get_epoch() << dendl;
- note_peer_epoch(name.num(), osdmap->get_epoch());
- send_incremental_map(epoch, con, osdmap);
+ osd->note_peer_epoch(name.num(), osdmap->get_epoch());
+ osd->send_incremental_map(epoch, con, osdmap);
}
}
}
if (client_session) {
client_session->sent_epoch_lock.Lock();
}
- osd->_share_map_incoming(
+ osd->service.share_map_incoming(
m->get_source(),
con.get(),
map_epoch,
if (peer_session) {
peer_session->sent_epoch_lock.Lock();
}
- _share_map_incoming(
+ service.share_map_incoming(
m->get_source(), m->get_connection().get(), m->map_epoch,
osdmap,
NULL);
if (session) {
session->sent_epoch_lock.Lock();
}
- _share_map_incoming(
+ service.share_map_incoming(
m->get_source(),
m->get_connection().get(),
op->sent_epoch,
}
}
+ bool should_share_map(entity_name_t name, Connection *con, epoch_t epoch,
+ OSDMapRef& osdmap, const epoch_t *sent_epoch_p);
+ void share_map_incoming(entity_name_t name, Connection *con, epoch_t epoch,
+ OSDMapRef& osdmap, epoch_t *sent_epoch_p);
+
ConnectionRef get_con_osd_cluster(int peer, epoch_t from_epoch);
pair<ConnectionRef,ConnectionRef> get_con_osd_hb(int peer, epoch_t from_epoch); // (back, front)
void send_message_osd_cluster(int peer, Message *m, epoch_t from_epoch);
void forget_peer_epoch(int p, epoch_t e);
friend struct send_map_on_destruct;
- bool _should_share_map(entity_name_t name, Connection *con, epoch_t epoch,
- OSDMapRef& osdmap, const epoch_t *sent_epoch_p);
- void _share_map_incoming(entity_name_t name, Connection *con, epoch_t epoch,
- OSDMapRef& osdmap, epoch_t *sent_epoch_p);
+
void _share_map_outgoing(int peer, Connection *con,
OSDMapRef map = OSDMapRef());