Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5e8d5c29 authored by NeilBrown's avatar NeilBrown Committed by Linus Torvalds
Browse files

[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: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: default avatarNeil Brown <neilb@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 6f54e2d0
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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();