From: Sage Weil Date: Fri, 26 Apr 2013 00:26:39 +0000 (-0700) Subject: mon: fix double-forwarding check X-Git-Tag: v0.61~89^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=77c068d1afd890665f9704977c60deefc02ccf72;p=ceph.git mon: fix double-forwarding check The PaxosServiceMessage fields are no longer filled in. Use Session::proxy_con instead. Signed-off-by: Sage Weil --- diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index a26c70fe3b50..0d2b8322b784 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -2763,12 +2763,12 @@ void Monitor::forward_request_leader(PaxosServiceMessage *req) MonSession *session = 0; if (req->get_connection()) session = static_cast(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;