]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: finish table servers recovery after creating newfs 1659/head
authorYan, Zheng <zheng.z.yan@intel.com>
Fri, 11 Apr 2014 01:43:59 +0000 (09:43 +0800)
committerYan, Zheng <zheng.z.yan@intel.com>
Fri, 11 Apr 2014 19:23:11 +0000 (03:23 +0800)
Fixes: #8054
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
src/mds/MDS.cc
src/mds/MDS.h

index 2473ff0eb1fdacb71266aa8fddd577e3bac70ad6..15af84f840dfc2d9d202a1e0d16a6ce6afab071d 100644 (file)
@@ -994,9 +994,10 @@ void MDS::handle_mds_map(MMDSMap *m)
     } else {
       // did i just recover?
       if ((is_active() || is_clientreplay()) &&
-          (oldstate == MDSMap::STATE_REJOIN ||
+          (oldstate == MDSMap::STATE_CREATING ||
+          oldstate == MDSMap::STATE_REJOIN ||
           oldstate == MDSMap::STATE_RECONNECT))
-        recovery_done();
+        recovery_done(oldstate);
 
       if (is_active()) {
         active_start();
@@ -1199,12 +1200,10 @@ void MDS::boot_create()
     dout(10) << "boot_create creating fresh anchortable" << dendl;
     anchorserver->reset();
     anchorserver->save(fin.new_sub());
-    anchorserver->handle_mds_recovery(whoami);
 
     dout(10) << "boot_create creating fresh snaptable" << dendl;
     snapserver->reset();
     snapserver->save(fin.new_sub());
-    snapserver->handle_mds_recovery(whoami);
   }
 
   assert(g_conf->mds_kill_create_at != 1);
@@ -1564,7 +1563,7 @@ void MDS::active_start()
   finish_contexts(g_ceph_context, waiting_for_active);  // kick waiters
 }
 
-void MDS::recovery_done()
+void MDS::recovery_done(int oldstate)
 {
   dout(1) << "recovery_done -- successful recovery!" << dendl;
   assert(is_clientreplay() || is_active());
@@ -1579,6 +1578,9 @@ void MDS::recovery_done()
     snapserver->finish_recovery(active);
   }
 
+  if (oldstate == MDSMap::STATE_CREATING)
+    return;
+
   mdcache->start_recovered_truncates();
   mdcache->do_file_recover();
 
index a1e1c58c83f996ef3c2e1ff87757b7b9dc880a9b..1cd6096b46d13af367328ec65f0d4900bc4905b6 100644 (file)
@@ -389,7 +389,7 @@ class MDS : public Dispatcher {
   void rejoin_joint_start();
   void rejoin_start();
   void rejoin_done();
-  void recovery_done();
+  void recovery_done(int oldstate);
   void clientreplay_start();
   void clientreplay_done();
   void active_start();