num_trim_flushes_warnings(0),
num_trim_requests_warnings(0) { }
~Session() override {
- assert(!item_session_list.is_on_list());
+ if (state == STATE_CLOSED) {
+ item_session_list.remove_myself();
+ } else {
+ assert(!item_session_list.is_on_list());
+ }
while (!preopen_out_queue.empty()) {
preopen_out_queue.front()->put();
preopen_out_queue.pop_front();
void dump();
- void get_client_set(set<client_t>& s) {
- for (ceph::unordered_map<entity_name_t,Session*>::iterator p = session_map.begin();
- p != session_map.end();
- ++p)
- if (p->second->info.inst.name.is_client())
- s.insert(p->second->info.inst.name.num());
- }
void get_client_session_set(set<Session*>& s) const {
for (ceph::unordered_map<entity_name_t,Session*>::const_iterator p = session_map.begin();
p != session_map.end();
s.insert(p->second);
}
- void open_sessions(map<client_t,entity_inst_t>& client_map) {
+ void replay_open_sessions(map<client_t,entity_inst_t>& client_map) {
for (map<client_t,entity_inst_t>::iterator p = client_map.begin();
p != client_map.end();
++p) {
Session *s = get_or_add_session(p->second);
set_state(s, Session::STATE_OPEN);
- version++;
+ replay_dirty_session(s);
}
}