Commit 2827528d authored by Yan, Zheng's avatar Yan, Zheng Committed by Ilya Dryomov

ceph: close stopped mds' session

If a mds has stopped, close its session and clean up its session
requests/caps. The process is similar to handling SESSION_CLOSE
initiated by mds.
Signed-off-by: default avatar"Yan, Zheng" <zyan@redhat.com>
Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
parent 0a07fc8c
...@@ -3136,6 +3136,22 @@ static void check_new_map(struct ceph_mds_client *mdsc, ...@@ -3136,6 +3136,22 @@ static void check_new_map(struct ceph_mds_client *mdsc,
__unregister_session(mdsc, s); __unregister_session(mdsc, s);
__wake_requests(mdsc, &s->s_waiting); __wake_requests(mdsc, &s->s_waiting);
ceph_put_mds_session(s); ceph_put_mds_session(s);
} else if (i >= newmap->m_num_mds) {
/* force close session for stopped mds */
get_session(s);
__unregister_session(mdsc, s);
__wake_requests(mdsc, &s->s_waiting);
kick_requests(mdsc, i);
mutex_unlock(&mdsc->mutex);
mutex_lock(&s->s_mutex);
cleanup_session_requests(mdsc, s);
remove_session_caps(s);
mutex_unlock(&s->s_mutex);
ceph_put_mds_session(s);
mutex_lock(&mdsc->mutex);
} else { } else {
/* just close it */ /* just close it */
mutex_unlock(&mdsc->mutex); mutex_unlock(&mdsc->mutex);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment