@@ -3852,29 +3852,37 @@ void OSD::_send_boot() {
dout(10) << "_send_boot" << dendl;
entity_addr_t cluster_addr = cluster_messenger->get_myaddr();
+ Connection *local_connection =
+ cluster_messenger->get_loopback_connection().get();
if (cluster_addr.is_blank_ip()) {
int port = cluster_addr.get_port();
cluster_addr = client_messenger->get_myaddr();
cluster_addr.set_port(port);
cluster_messenger->set_addr_unknowns(cluster_addr);
dout(10) << " assuming cluster_addr ip matches client_addr" << dendl;
- }
+ } else if (local_connection->get_priv() == NULL)
+
+ cluster_messenger->ms_deliver_handle_fast_connect(local_connection);
+
entity_addr_t hb_back_addr = hb_back_server_messenger->get_myaddr();
+ local_connection =
+ hb_back_server_messenger->get_loopback_connection().get();
if (hb_back_addr.is_blank_ip()) {
int port = hb_back_addr.get_port();
hb_back_addr = cluster_addr;
hb_back_addr.set_port(port);
hb_back_server_messenger->set_addr_unknowns(hb_back_addr);
dout(10) << " assuming hb_back_addr ip matches cluster_addr" << dendl;
- }
+ } else if (local_connection->get_priv() == NULL)
+
+ hb_back_server_messenger->ms_deliver_handle_fast_connect(local_connect
+ ion);
+
entity_addr_t hb_front_addr = hb_front_server_messenger->get_myaddr();
+ local_connection =
+ hb_front_server_messenger->get_loopback_connection().get();
if (hb_front_addr.is_blank_ip()) {
int port = hb_front_addr.get_port();
hb_front_addr = client_messenger->get_myaddr();
hb_front_addr.set_port(port);
hb_front_server_messenger->set_addr_unknowns(hb_front_addr);
dout(10) << " assuming hb_front_addr ip matches client_addr" << dendl;
- }
+ } else if (local_connection->get_priv() == NULL)
+
+ hb_front_server_messenger->ms_deliver_handle_fast_connect(local_connec
+ tion);
MOSDBoot *mboot = new MOSDBoot(superblock, service.get_boot_epoch(),
hb_back_addr, hb_front_addr, cluster_addr);
--