-void MDS::send_message(Message *m, Connection *c) {
+void MDS::send_message(Message *m, Connection *c)
+{
+ assert(c);
messenger->send_message(m, c);
}
}
}
+void MDS::send_message_client(Message *m, Session *session)
+{
+ dout(10) << "send_message_client " << session->inst << " " << *m << dendl;
+ if (session->connection) {
+ messenger->send_message(m, session->connection);
+ } else {
+ messenger->send_message(m, session->inst);
+ }
+}
+
int MDS::init()
{
dout(10) << sizeof(MDSCacheObject) << "\tMDSCacheObject" << dendl;
void send_message_client_counted(Message *m, client_t client);
void send_message_client_counted(Message *m, Session *session);
void send_message_client_counted(Message *m, Connection *connection);
+ void send_message_client(Message *m, Session *session);
void send_message(Message *m, Connection *c);
// start up, shutdown
if (session->is_closing()) {
// reset session
- mds->messenger->send_message(new MClientSession(CEPH_SESSION_CLOSE), session->connection);
+ mds->send_message_client(new MClientSession(CEPH_SESSION_CLOSE), session);
mds->sessionmap.set_state(session, Session::STATE_CLOSED);
session->clear();
} else if (session->is_killing()) {
mds->sessionmap.set_state(session, Session::STATE_STALE);
mds->locker->revoke_stale_caps(session);
mds->locker->remove_stale_leases(session);
- mds->messenger->send_message(new MClientSession(CEPH_SESSION_STALE, session->get_push_seq()),
- session->connection);
+ mds->send_message_client(new MClientSession(CEPH_SESSION_STALE, session->get_push_seq()), session);
}
// autoclose
newlim = max_caps_per_client;
MClientSession *m = new MClientSession(CEPH_SESSION_RECALL_STATE);
m->head.max_caps = newlim;
- mds->messenger->send_message(m, session->connection);
+ mds->send_message_client(m, session);
}
}