]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: process session msgs during clientreplay
authorSage Weil <sage@newdream.net>
Thu, 30 Jul 2009 20:37:52 +0000 (13:37 -0700)
committerSage Weil <sage@newdream.net>
Thu, 30 Jul 2009 20:45:12 +0000 (13:45 -0700)
src/mds/MDS.cc
src/mds/Server.cc

index d8063fe65a96083b5b811eb37a4238afbbbdfc99..e5e4d940a95e7feecec3edc83848d74ff2ba4ed6 100644 (file)
@@ -447,7 +447,7 @@ void MDS::tick()
   }
 
   // ...
-  if (is_active() || is_stopping()) {
+  if (is_clientreplay() || is_active() || is_stopping()) {
     locker->scatter_tick();
     server->find_idle_sessions();
   }
index b3da592f983588c189c36038164964530706c692..36e389a39a5e8e8c4126a893fd60bb02c1c8ebd5 100644 (file)
@@ -108,8 +108,9 @@ void Server::dispatch(Message *m)
       mds->enqueue_replay(new C_MDS_RetryMessage(mds, m));
       return;
     } else if (mds->is_clientreplay() &&
-              m->get_type() == CEPH_MSG_CLIENT_REQUEST &&
-              ((MClientRequest*)m)->is_replay()) {
+              (m->get_type() == CEPH_MSG_CLIENT_SESSION ||
+               (m->get_type() == CEPH_MSG_CLIENT_REQUEST &&
+                ((MClientRequest*)m)->is_replay()))) {
       // replaying!
     } else {
       dout(3) << "not active yet, waiting" << dendl;