]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: fix double-forwarding check
authorSage Weil <sage@inktank.com>
Fri, 26 Apr 2013 00:26:39 +0000 (17:26 -0700)
committerSage Weil <sage@inktank.com>
Fri, 26 Apr 2013 17:48:10 +0000 (10:48 -0700)
The PaxosServiceMessage fields are no longer filled in.  Use Session::proxy_con
instead.

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

index a26c70fe3b50b55e5e2597dfab57bdb9e3a33b02..0d2b8322b78460accf5d1ab8b1432af42296e02d 100644 (file)
@@ -2763,12 +2763,12 @@ void Monitor::forward_request_leader(PaxosServiceMessage *req)
   MonSession *session = 0;
   if (req->get_connection())
     session = static_cast<MonSession *>(req->get_connection()->get_priv());
-  if (req->session_mon >= 0) {
-    dout(10) << "forward_request won't double fwd request " << *req << dendl;
-    req->put();
-  } else if (req->get_source().is_mon() && req->get_source_addr() != messenger->get_myaddr()) {
+  if (req->get_source().is_mon() && req->get_source_addr() != messenger->get_myaddr()) {
     dout(10) << "forward_request won't forward (non-local) mon request " << *req << dendl;
     req->put();
+  } else if (session && session->proxy_con) {
+    dout(10) << "forward_request won't double fwd request " << *req << dendl;
+    req->put();
   } else if (session && !session->closed) {
     RoutedRequest *rr = new RoutedRequest;
     rr->tid = ++routed_request_tid;