]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
monc: create send_mon_message helper
authorSage Weil <sage@newdream.net>
Fri, 26 Jun 2009 20:51:49 +0000 (13:51 -0700)
committerSage Weil <sage@newdream.net>
Fri, 26 Jun 2009 22:10:27 +0000 (15:10 -0700)
src/client/Client.cc
src/messages/MMDSGetMap.h
src/mon/MonClient.cc
src/mon/MonClient.h

index 900dca1a456de234bd5ceffdc267c6fe41ebe3b6..ce1704afcba0977daef764b97b3bd1e9ceea2d71 100644 (file)
@@ -806,9 +806,7 @@ MClientReply *Client::make_request(MClientRequest *req,
 
       if (!mdsmap->is_active(mds)) {
        dout(10) << "no address for mds" << mds << ", requesting new mdsmap" << dendl;
-       int mon = monclient->monmap.pick_mon();
-       messenger->send_message(new MMDSGetMap(monclient->monmap.fsid, mdsmap->get_epoch()+1),
-                               monclient->monmap.get_inst(mon));
+       monclient->send_mon_message(new MMDSGetMap(monclient->get_fsid(), mdsmap->get_epoch()+1));
        waiting_for_mdsmap.push_back(&cond);
        cond.Wait(client_lock);
 
index 7d4f31ba0033ec298201960340b788ba0a515d75..c1cef56dbf41b92dda14c8c3ac836aba83e8247e 100644 (file)
@@ -24,7 +24,7 @@ class MMDSGetMap : public PaxosServiceMessage {
   ceph_fsid_t fsid;
 
   MMDSGetMap() : PaxosServiceMessage(CEPH_MSG_MDS_GETMAP, 0) {}
-  MMDSGetMap(ceph_fsid_t &f, epoch_t have=0) : 
+  MMDSGetMap(const ceph_fsid_t &f, epoch_t have=0) : 
     PaxosServiceMessage(CEPH_MSG_MDS_GETMAP, have), 
     fsid(f) { }
 
index fc0852b5d10543d6fc660d9dd69b6281df7cc290..9f7752051e9784b1c93c73b0c8ad28d9f0db3861 100644 (file)
@@ -271,3 +271,13 @@ void MonClient::handle_unmount(Message* m)
 }
 
 
+// ---------
+
+void MonClient::send_mon_message(Message *m, bool newmon)
+{
+  Mutex::Locker l(monc_lock);
+  int mon = monmap.pick_mon(newmon);
+  messenger->send_message(m, monmap.mon_inst[mon]);
+}
+
+
index 8def162f41ad83a5c4b916b341579ec40c024616..4b34c4c2ba0544a7025e0272398dfe3437d40c45 100644 (file)
@@ -81,6 +81,10 @@ private:
 
   void send_mon_message(Message *m, bool new_mon=false);
 
+  const ceph_fsid_t& get_fsid() {
+    return monmap.fsid;
+  }
+
   entity_addr_t get_mon_addr(unsigned i) {
     Mutex::Locker l(monc_lock);
     if (i < monmap.size())