From: Bruno Faccini <bruno.facc...@intel.com> This patch will avoid potential race, around socket sleepers wait list, during acceptor thread termination and using sk_callback_lock RW-Lock protection.
Signed-off-by: Bruno Faccini <bruno.facc...@intel.com> Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6476 Reviewed-on: http://review.whamcloud.com/14503 Reviewed-by: Amir Shehata <amir.sheh...@intel.com> Reviewed-by: John L. Hammond <john.hamm...@intel.com> Reviewed-by: Oleg Drokin <oleg.dro...@intel.com> --- drivers/staging/lustre/lnet/lnet/acceptor.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/drivers/staging/lustre/lnet/lnet/acceptor.c b/drivers/staging/lustre/lnet/lnet/acceptor.c index ffa2b19..61806ce 100644 --- a/drivers/staging/lustre/lnet/lnet/acceptor.c +++ b/drivers/staging/lustre/lnet/lnet/acceptor.c @@ -485,11 +485,17 @@ lnet_acceptor_start(void) void lnet_acceptor_stop(void) { + struct sock *sk; + if (lnet_acceptor_state.pta_shutdown) /* not running */ return; lnet_acceptor_state.pta_shutdown = 1; - wake_up_all(sk_sleep(lnet_acceptor_state.pta_sock->sk)); + + sk = lnet_acceptor_state.pta_sock->sk; + + /* awake any sleepers using safe method */ + sk->sk_state_change(sk); /* block until acceptor signals exit */ wait_for_completion(&lnet_acceptor_state.pta_signal); -- 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/