]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: stop using MOSDGetMap
authorSage Weil <sage@newdream.net>
Sat, 10 Oct 2009 04:50:51 +0000 (21:50 -0700)
committerSage Weil <sage@newdream.net>
Sat, 10 Oct 2009 04:50:51 +0000 (21:50 -0700)
We should use the monclient and subscriptions instead.

src/dumpjournal.cc
src/librados.cc
src/mds/MDS.cc
src/mon/MonClient.h
src/osd/OSD.cc
src/osdc/Objecter.cc

index 447aaa689971b01fd7c9ae2b87dd4cbcb7c41bd1..707e8f651c4b78bc4a9ff1cc91ad5221df6b97a8 100644 (file)
@@ -23,7 +23,6 @@ using namespace std;
 #include "mon/MonClient.h"
 #include "msg/SimpleMessenger.h"
 #include "osd/OSDMap.h"
-#include "messages/MOSDGetMap.h"
 #include "osdc/Objecter.h"
 #include "osdc/Journaler.h"
 #include "mds/mdstypes.h"
index f9469f41b27facab64335a879de82912a44e6594..fd36fe7771a84a78262cbce00d68e2b07c79e14e 100644 (file)
@@ -37,7 +37,6 @@ using namespace std;
 
 #include "osdc/Objecter.h"
 
-#include "messages/MOSDGetMap.h"
 #include "messages/MClientMount.h"
 #include "messages/MClientMountAck.h"
 
index 110270d7cebc89ab614063a1777a42b80d208830..914cc11480aa739f944dbba7f4fae118b592d2dc 100644 (file)
@@ -54,7 +54,6 @@
 #include "messages/MGenericMessage.h"
 
 #include "messages/MOSDMap.h"
-#include "messages/MOSDGetMap.h"
 
 #include "messages/MClientRequest.h"
 #include "messages/MClientRequestForward.h"
@@ -642,12 +641,6 @@ void MDS::handle_mds_map(MMDSMap *m)
     // update messenger.
     dout(1) << "handle_mds_map i am now mds" << whoami << "." << incarnation << dendl;
     messenger->set_myname(entity_name_t::MDS(whoami));
-
-    // do i need an osdmap?
-    if (oldwhoami < 0) {
-      // we need an osdmap too.
-      monc->send_mon_message(new MOSDGetMap(monc->get_fsid(), 0));
-    }
   }
 
   // tell objecter my incarnation
index 802b2839ce9e6d028ac60e28b034bb2d89e11066..0604ad8ca4726f71eae7322e351bd11af1c78bf2 100644 (file)
@@ -103,7 +103,8 @@ private:
       sub_have[what].have = have;
       sub_have[what].onetime = true;
       return true;
-    }
+    } else
+      sub_have[what].have = have;
     return false;
   }
   void _sub_got(nstring what, version_t have) {
index 2f72e3d513a1959d7b7edfd39e1cd55756fa739e..3b7a99568f47ebdc21784fb9fee444dabdc9b9e8 100644 (file)
@@ -53,7 +53,6 @@
 #include "messages/MOSDPGTemp.h"
 
 #include "messages/MOSDMap.h"
-#include "messages/MOSDGetMap.h"
 #include "messages/MOSDPGNotify.h"
 #include "messages/MOSDPGQuery.h"
 #include "messages/MOSDPGLog.h"
@@ -1141,7 +1140,7 @@ void OSD::heartbeat()
     if (now - last_mon_heartbeat > g_conf.osd_mon_heartbeat_interval) {
       last_mon_heartbeat = now;
       dout(10) << "i have no heartbeat peers; checking mon for new map" << dendl;
-      monc->send_mon_message(new MOSDGetMap(monc->get_fsid(), osdmap->get_epoch()+1));
+      monc->sub_want_onetime("osdmap", osdmap->get_epoch());
     }
   }
 
@@ -1668,10 +1667,9 @@ void OSD::handle_scrub(MOSDScrub *m)
 
 void OSD::wait_for_new_map(Message *m)
 {
-  // ask 
-  if (waiting_for_osdmap.empty()) {
-    monc->send_mon_message(new MOSDGetMap(monc->get_fsid(), osdmap->get_epoch()+1));
-  }
+  // ask?
+  if (waiting_for_osdmap.empty())
+    monc->sub_want_onetime("osdmap", osdmap->get_epoch());
   
   waiting_for_osdmap.push_back(m);
 }
@@ -1890,7 +1888,7 @@ void OSD::handle_osd_map(MOSDMap *m)
     }
     else {
       dout(10) << "handle_osd_map missing epoch " << cur+1 << dendl;
-      monc->send_mon_message(new MOSDGetMap(monc->get_fsid(), cur+1));
+      monc->sub_want_onetime("osdmap", cur);
       break;
     }
 
index 619e2a5a331b302ef90da2da2c3b6b21ef0206b9..3b3a6306bd06fd9221ee6b7960eb561bdded9d1f 100644 (file)
@@ -25,7 +25,6 @@
 #include "messages/MOSDOp.h"
 #include "messages/MOSDOpReply.h"
 #include "messages/MOSDMap.h"
-#include "messages/MOSDGetMap.h"
 
 #include "messages/MPoolOp.h"
 #include "messages/MPoolOpReply.h"
@@ -141,7 +140,7 @@ void Objecter::handle_osd_map(MOSDMap *m)
        }
        else {
          dout(3) << "handle_osd_map requesting missing epoch " << osdmap->get_epoch()+1 << dendl;
-         monc->send_mon_message(new MOSDGetMap(monc->get_fsid(), osdmap->get_epoch()+1));
+         monc->sub_want_onetime("osdmap", osdmap->get_epoch());
          break;
        }
        
@@ -173,7 +172,7 @@ void Objecter::handle_osd_map(MOSDMap *m)
        scan_pgs(changed_pgs);
       } else {
        dout(3) << "handle_osd_map hmm, i want a full map, requesting" << dendl;
-       monc->send_mon_message(new MOSDGetMap(monc->get_fsid(), 0));
+       monc->sub_want_onetime("osdmap", 0);
       }
     }