]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
objecter: resend mon ops on handle mon connection reset
authorSage Weil <sage@newdream.net>
Tue, 22 Sep 2009 22:11:10 +0000 (15:11 -0700)
committerSage Weil <sage@newdream.net>
Tue, 22 Sep 2009 22:36:46 +0000 (15:36 -0700)
src/osdc/Objecter.cc
src/osdc/Objecter.h

index a1da74a30b5e186fef1612d8e671d0cb5e3e72da..df036b84a38591dda19379d76d4f79739b3bf509 100644 (file)
@@ -340,12 +340,9 @@ void Objecter::tick()
 
   // reschedule
   timer.add_event_after(g_conf.objecter_tick_interval, new C_Tick(this));
-
-  //resubmit old ops
-  resend_slow_ops();
 }
 
-void Objecter::resend_slow_ops()
+void Objecter::resend_mon_ops()
 {
   utime_t cutoff = g_clock.now();
   cutoff -= g_conf.objecter_mon_retry_interval;
@@ -934,6 +931,12 @@ void Objecter::_sg_read_finish(vector<ObjectExtent>& extents, vector<bufferlist>
 }
 
 
+void Objecter::ms_handle_reset(const entity_addr_t& addr)
+{
+  if (monc->monmap.contains(addr))
+    resend_mon_ops();
+}
+
 void Objecter::ms_handle_remote_reset(const entity_addr_t& addr)
 {
   if (osdmap->have_addr(addr))
index c575f30a0b6cffc4bd9b46b55a167e5605273954..d3b54a99fa09c4c168cd9b56c262843d0208805c 100644 (file)
@@ -197,7 +197,6 @@ class Objecter {
     void finish(int r) { ob->tick(); }
   };
   void tick();
-  void resend_slow_ops();
 
   /*** track pending operations ***/
   // read
@@ -384,6 +383,7 @@ class Objecter {
 
   void _list_reply(ListContext *list_context, bufferlist *bl, Context *final_finish);
 
+  void resend_mon_ops();
 
  public:
   Objecter(Messenger *m, MonClient *mc, OSDMap *om, Mutex& l) : 
@@ -698,6 +698,7 @@ public:
     }
   }
 
+  void ms_handle_reset(const entity_addr_t& addr);
   void ms_handle_remote_reset(const entity_addr_t& addr);
 
 };