Commit f7104cc1 authored by J. Bruce Fields's avatar J. Bruce Fields Committed by Chuck Lever
Browse files

nfsd4: Fix forced-expiry locking



This should use the network-namespace-wide client_lock, not the
per-client cl_lock.

You shouldn't see any bugs unless you're actually using the
forced-expiry interface introduced by 89c905be.

Fixes: 89c905be "nfsd: allow forced expiration of NFSv4 clients"
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
parent 5a475344
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2687,9 +2687,9 @@ static void force_expire_client(struct nfs4_client *clp)

	trace_nfsd_clid_admin_expired(&clp->cl_clientid);

	spin_lock(&clp->cl_lock);
	spin_lock(&nn->client_lock);
	clp->cl_time = 0;
	spin_unlock(&clp->cl_lock);
	spin_unlock(&nn->client_lock);

	wait_event(expiry_wq, atomic_read(&clp->cl_rpc_users) == 0);
	spin_lock(&nn->client_lock);