]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
uclient: clean up mark_down of failed mds
authorSage Weil <sage@newdream.net>
Wed, 23 Dec 2009 20:04:39 +0000 (12:04 -0800)
committerSage Weil <sage@newdream.net>
Tue, 29 Dec 2009 04:05:32 +0000 (20:05 -0800)
Set inst at the time we see it change, otherwise we may miss an mds that
replayed but failed before it fully recovered.

src/client/Client.cc

index 77d78bd54a9a8ceb0d9a82a7db01102adfd7b587..513bf0e60554a25a59f325f3981c7e3dd5cec33b 100644 (file)
@@ -1332,6 +1332,8 @@ void Client::handle_mds_map(MMDSMap* m)
     if (!mdsmap->is_up(p->first) ||
        mdsmap->get_inst(p->first) != p->second.inst) {
       messenger->mark_down(p->second.inst.addr);
+      if (mdsmap->is_up(p->first))
+       p->second.inst = mdsmap->get_inst(p->first);
     } else if (oldstate == newstate)
       continue;  // no change