SUNRPC: Fix a race in rpciod_down()
commitb247bbf1da69ce376aa1ceb8057331214589e366
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Thu, 19 Jul 2007 20:32:20 +0000 (19 16:32 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 7 Aug 2007 19:13:16 +0000 (7 15:13 -0400)
tree95451eff3963389d5cb2b93bb74b71f89826bb68
parent4a2a4df7b6db25df8f3d5cc6dd0b096119359d92
SUNRPC: Fix a race in rpciod_down()

The commit 4ada539ed77c7a2bbcb75cafbbd7bd8d2b9bef7b lead to the unpleasant
possibility of an asynchronous rpc_task being required to call
rpciod_down() when it is complete. This again means that the rpciod
workqueue may get to call destroy_workqueue on itself -> hang...

Change rpciod_up/rpciod_down to just get/put the module, and then
create/destroy the workqueues on module load/unload.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
net/sunrpc/sched.c