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

Commit e50a26dc authored by J. Bruce Fields's avatar J. Bruce Fields
Browse files

nfsd4: nfsd_shutdown_net needs state lock



A comment claims the caller should take it, but that's not being done.
Note we don't want it around the cancel_delayed_work_sync since that may
wait on work which holds the client lock.

Reported-by: default avatarBenny Halevy <bhalevy@primarydata.com>
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent e1a90ebd
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -5124,7 +5124,6 @@ nfs4_state_start(void)
	return ret;
}

/* should be called with the state lock held */
void
nfs4_state_shutdown_net(struct net *net)
{
@@ -5135,6 +5134,7 @@ nfs4_state_shutdown_net(struct net *net)
	cancel_delayed_work_sync(&nn->laundromat_work);
	locks_end_grace(&nn->nfsd4_manager);

	nfs4_lock_state();
	INIT_LIST_HEAD(&reaplist);
	spin_lock(&recall_lock);
	list_for_each_safe(pos, next, &nn->del_recall_lru) {
@@ -5149,6 +5149,7 @@ nfs4_state_shutdown_net(struct net *net)

	nfsd4_client_tracking_exit(net);
	nfs4_state_destroy_net(net);
	nfs4_unlock_state();
}

void