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: "Yan, Zheng" <zyan@redhat.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
		
							parent
							
								
									0a07fc8cd0
								
							
						
					
					
						commit
						2827528da0
					
				| @ -3136,6 +3136,22 @@ static void check_new_map(struct ceph_mds_client *mdsc, | ||||
| 				__unregister_session(mdsc, s); | ||||
| 				__wake_requests(mdsc, &s->s_waiting); | ||||
| 				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 { | ||||
| 				/* just close it */ | ||||
| 				mutex_unlock(&mdsc->mutex); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user