summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2009-11-20 22:02:38 -0800
committerSage Weil <sage@newdream.net>2009-11-20 22:02:38 -0800
commit6d10f068d9d25fb3fdadeace966d52a352c6b50c (patch)
tree5e7413cd99ccdc42fd79d5b5a4b8f5a3d4035ae2
parent1ee8308c74f991e7d20c633b3e3a9f1691884be8 (diff)
downloadceph-6d10f068d9d25fb3fdadeace966d52a352c6b50c.tar.gz
mds: clear session before remove_session
remove_session may drop the last ref.
-rw-r--r--src/mds/Server.cc3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/mds/Server.cc b/src/mds/Server.cc
index 4be67678203..430b71d2dd7 100644
--- a/src/mds/Server.cc
+++ b/src/mds/Server.cc
@@ -288,9 +288,8 @@ void Server::_session_logged(Session *session, bool open, version_t pv, interval
else if (session->is_stale_closing())
mds->messenger->mark_down(session->inst.addr); // kill connection
mds->sessionmap.set_state(session, Session::STATE_CLOSED);
- mds->sessionmap.remove_session(session);
-
session->clear();
+ mds->sessionmap.remove_session(session);
} else {
// close must have been canceled (by an import?) ...
assert(!open);