diff options
author | Yan, Zheng <zheng.z.yan@intel.com> | 2013-01-27 15:16:19 +0800 |
---|---|---|
committer | Yan, Zheng <zheng.z.yan@intel.com> | 2013-01-29 10:17:37 +0800 |
commit | abc4c78550946a5640c0c8ea912e990557718521 (patch) | |
tree | 2a2c3f48e4703762e41c124ec1997a51ff8abf1f | |
parent | e69e7e5d0eae6581049d22c07ea3cda773c80f13 (diff) | |
download | ceph-abc4c78550946a5640c0c8ea912e990557718521.tar.gz |
mds: allow handling slave request in the clientreplay stage
replaying a client request may need to create slave request and the slave
MDS can be also in the clientreplay stage.
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
-rw-r--r-- | src/mds/Server.cc | 4 |
1 files changed, 4 insertions, 0 deletions
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)); |