diff --git a/src/osd_peering.cpp b/src/osd_peering.cpp index 3a18487d3..e50ca1216 100644 --- a/src/osd_peering.cpp +++ b/src/osd_peering.cpp @@ -194,6 +194,24 @@ void osd_t::start_pg_peering(pg_t & pg) }); } } + if (pg.pg_cursize < pg.pg_minsize) + { + pg.state = PG_INCOMPLETE; + report_pg_state(pg); + return; + } + std::set cur_peers; + for (auto pg_osd: pg.all_peers) + { + if (pg_osd == this->osd_num || msgr.osd_peer_fds.find(pg_osd) != msgr.osd_peer_fds.end()) + { + cur_peers.insert(pg_osd); + } + else if (msgr.wanted_peers.find(pg_osd) == msgr.wanted_peers.end()) + { + msgr.connect_peer(pg_osd, st_cli.peer_states[pg_osd]); + } + } if (pg.target_history.size()) { // Refuse to start PG if no peers are available from any of the historical OSD sets @@ -222,24 +240,6 @@ void osd_t::start_pg_peering(pg_t & pg) } } } - if (pg.pg_cursize < pg.pg_minsize) - { - pg.state = PG_INCOMPLETE; - report_pg_state(pg); - return; - } - std::set cur_peers; - for (auto pg_osd: pg.all_peers) - { - if (pg_osd == this->osd_num || msgr.osd_peer_fds.find(pg_osd) != msgr.osd_peer_fds.end()) - { - cur_peers.insert(pg_osd); - } - else if (msgr.wanted_peers.find(pg_osd) == msgr.wanted_peers.end()) - { - msgr.connect_peer(pg_osd, st_cli.peer_states[pg_osd]); - } - } pg.cur_peers.insert(pg.cur_peers.begin(), cur_peers.begin(), cur_peers.end()); if (pg.peering_state) {