[PATCH] knfsd: nfsd4: fix laundromat shutdown race
We need to make sure the laundromat work doesn't reschedule itself just when we try to cancel it. Also, we shouldn't be waiting for it to finish running while holding the state lock, as that's a potential deadlock. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
6f54e2d0d3
commit
5e8d5c2948
1 changed files with 2 additions and 2 deletions
|
@ -3238,8 +3238,6 @@ __nfs4_state_shutdown(void)
|
|||
}
|
||||
|
||||
cancel_delayed_work(&laundromat_work);
|
||||
flush_workqueue(laundry_wq);
|
||||
destroy_workqueue(laundry_wq);
|
||||
nfsd4_shutdown_recdir();
|
||||
nfs4_init = 0;
|
||||
}
|
||||
|
@ -3247,6 +3245,8 @@ __nfs4_state_shutdown(void)
|
|||
void
|
||||
nfs4_state_shutdown(void)
|
||||
{
|
||||
cancel_rearming_delayed_workqueue(laundry_wq, &laundromat_work);
|
||||
destroy_workqueue(laundry_wq);
|
||||
nfs4_lock_state();
|
||||
nfs4_release_reclaim();
|
||||
__nfs4_state_shutdown();
|
||||
|
|
Loading…
Reference in a new issue