nfsd: reduce some spinlocking in put_client_renew
No need to take the lock unless the count goes to 0. Signed-off-by: Jeff Layton <jlayton@primarydata.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
Родитель
dff1399f8a
Коммит
d6c249b4d4
|
@ -193,8 +193,10 @@ static void put_client_renew(struct nfs4_client *clp)
|
|||
{
|
||||
struct nfsd_net *nn = net_generic(clp->net, nfsd_net_id);
|
||||
|
||||
spin_lock(&nn->client_lock);
|
||||
put_client_renew_locked(clp);
|
||||
if (!atomic_dec_and_lock(&clp->cl_refcount, &nn->client_lock))
|
||||
return;
|
||||
if (!is_client_expired(clp))
|
||||
renew_client_locked(clp);
|
||||
spin_unlock(&nn->client_lock);
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче