diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 9d08c202c67..04bcba71229 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -101,6 +101,10 @@ void Server::dispatch(Message *m) (m->get_type() == CEPH_MSG_CLIENT_REQUEST && ((MClientRequest*)m)->is_replay()))) { // replaying! + } else if (mds->is_clientreplay() && m->get_type() == MSG_MDS_SLAVE_REQUEST && + (((MMDSSlaveRequest*)m)->is_reply() || + !mds->mdsmap->is_active(m->get_source().num()))) { + // slave reply or the master is also in the clientreplay stage } else { dout(3) << "not active yet, waiting" << dendl; mds->wait_for_active(new C_MDS_RetryMessage(mds, m));