mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-14 07:44:21 +08:00
sunrpc: document locking rules for svc_exit_thread()
The locking required for svc_exit_thread() is not obvious, so document it in a kdoc comment. Signed-off-by: NeilBrown <neilb@suse.de> Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
parent
73598a0cfb
commit
16ef80eedc
@ -945,6 +945,20 @@ void svc_rqst_release_pages(struct svc_rqst *rqstp)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* svc_exit_thread - finalise the termination of a sunrpc server thread
|
||||
* @rqstp: the svc_rqst which represents the thread.
|
||||
*
|
||||
* When a thread started with svc_new_thread() exits it must call
|
||||
* svc_exit_thread() as its last act. This must be done with the
|
||||
* service mutex held. Normally this is held by a DIFFERENT thread, the
|
||||
* one that is calling svc_set_num_threads() and which will wait for
|
||||
* SP_VICTIM_REMAINS to be cleared before dropping the mutex. If the
|
||||
* thread exits for any reason other than svc_thread_should_stop()
|
||||
* returning %true (which indicated that svc_set_num_threads() is
|
||||
* waiting for it to exit), then it must take the service mutex itself,
|
||||
* which can only safely be done using mutex_try_lock().
|
||||
*/
|
||||
void
|
||||
svc_exit_thread(struct svc_rqst *rqstp)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user