]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osdc/Objecter: kick command ops on osd con resets
authorSage Weil <sage@inktank.com>
Thu, 13 Jun 2013 22:13:47 +0000 (15:13 -0700)
committerSage Weil <sage@inktank.com>
Thu, 13 Jun 2013 22:16:20 +0000 (15:16 -0700)
Resend osd/pg commands on the OSDSession, just as we do with other request
types.

Signed-off-by: Sage Weil <sage@inktank.com>
src/osdc/Objecter.cc

index ad7481f42caeb61b604c8d86ce22f29b5ce7ed3c..685d8c5fe5e1f0370530336b7b57f04ca5ed61bb 100644 (file)
@@ -1013,6 +1013,17 @@ void Objecter::kick_requests(OSDSession *session)
     send_linger(lresend.begin()->second);
     lresend.erase(lresend.begin());
   }
+
+  // resend commands
+  map<uint64_t,CommandOp*> cresend;  // resend in order
+  for (xlist<CommandOp*>::iterator k = session->command_ops.begin(); !k.end(); ++k) {
+    logger->inc(l_osdc_command_resend);
+    cresend[(*k)->tid] = *k;
+  }
+  while (!cresend.empty()) {
+    _send_command(cresend.begin()->second);
+    cresend.erase(cresend.begin());
+  }
 }
 
 void Objecter::schedule_tick()