Whamcloud - gitweb
The pinger was deadlocking on itself, in some rare and improbably but
authorphil <phil>
Mon, 13 Oct 2003 22:31:01 +0000 (22:31 +0000)
committerphil <phil>
Mon, 13 Oct 2003 22:31:01 +0000 (22:31 +0000)
commit2e034dbab0f8baf28c6ab3f5425c6fe8ac584ab1
treea3630d03fb096407e8aff4425891915876f82b3e
parent008f192ca8d11407296038c9b048496c93fd7ee4
The pinger was deadlocking on itself, in some rare and improbably but
very real cases, so I reworked it to be simpler.

It's started once from ptlrpc_init now, and stopped once from ptlrpc_exit

Adding and deleting imports no longer causes the thread to be created
and go away.  Most importantly, we no longer hold the sem in
stop_pinger across the wake_up and subsequent l_wait_event; if the
pinger thread was already doing something, blocked on the pinger_sem,
it would never wake up and deadlock would ensue.
lustre/ptlrpc/pinger.c