]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
small mdsmon fix
authorsageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Fri, 16 Nov 2007 23:45:58 +0000 (23:45 +0000)
committersageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Fri, 16 Nov 2007 23:45:58 +0000 (23:45 +0000)
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@2077 29311d96-e01e-0410-9327-a35deaab8ce9

trunk/ceph/mon/MDSMonitor.cc

index 7fd788afb2b269785606ac268e3da7f756c952a6..516ccc41c6e47f3fb5995d87537f45d0d6885afb 100644 (file)
@@ -113,7 +113,8 @@ bool MDSMonitor::update_from_paxos()
        p != mdsmap.mds_inst.end();
        ++p) 
     if (last_beacon.count(p->second.addr) == 0 &&
-       mdsmap.get_state(p->first) != MDSMap::STATE_DNE)
+       mdsmap.get_state(p->first) != MDSMap::STATE_DNE &&
+       mdsmap.get_state(p->first) != MDSMap::STATE_FAILED)
       last_beacon[p->second.addr] = g_clock.now();
   for (map<entity_addr_t,int32_t>::iterator p = mdsmap.standby.begin();
        p != mdsmap.standby.end();
@@ -579,7 +580,8 @@ void MDSMonitor::tick()
     if (mds >= 0) {
       // failure!
       int newstate;
-      switch (pending_mdsmap.get_state(mds)) {
+      int curstate = pending_mdsmap.get_state(mds);
+      switch (curstate) {
       case MDSMap::STATE_CREATING:
        newstate = MDSMap::STATE_DNE;   // didn't finish creating
        last_beacon.erase(addr);