session->put();
}
+void Monitor::no_reply(MonOpRequestRef op)
+{
+ MonSession *session = op->get_session();
+ Message *req = op->get_req();
+
+ if (!session) {
+ dout(2) << "no_reply no session, dropping non-reply to "
+ << *req << dendl;
+ op->mark_event("no_reply: no session");
+ return;
+ }
+ if (session->proxy_con) {
+ if (get_quorum_features() & CEPH_FEATURE_MON_NULLROUTE) {
+ dout(10) << "no_reply to " << req->get_source_inst()
+ << " via " << session->proxy_con->get_peer_addr()
+ << " for request " << *req << dendl;
+ session->proxy_con->send_message(new MRoute(session->proxy_tid, NULL));
+ op->mark_event("no_reply: send routed request");
+ } else {
+ dout(10) << "no_reply no quorum nullroute feature for "
+ << req->get_source_inst()
+ << " via " << session->proxy_con->get_peer_addr()
+ << " for request " << *req << dendl;
+ op->mark_event("no_reply: no quorum support");
+ }
+ } else {
+ dout(10) << "no_reply to " << req->get_source_inst()
+ << " " << *req << dendl;
+ op->mark_event("no_reply");
+ }
+ session->put();
+}
+
void Monitor::no_reply(PaxosServiceMessage *req)
{
MonSession *session = static_cast<MonSession*>(req->get_connection()->get_priv());
void send_reply(PaxosServiceMessage *req, Message *reply);
void send_reply(MonOpRequestRef op, Message *reply);
void no_reply(PaxosServiceMessage *req);
+ void no_reply(MonOpRequestRef op);
void resend_routed_requests();
void remove_session(MonSession *s);
void remove_all_sessions();