nfsd4: keep a reference count on client while in use
authorBenny Halevy <bhalevy@panasas.com>
Tue, 11 May 2010 21:13:54 +0000 (00:13 +0300)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Thu, 13 May 2010 15:58:54 +0000 (11:58 -0400)
commitd76829889ac4250a18cfcc1a606bb256bb9c570c
tree27a675ed794809b4aa2430aa3a03e4ffb0f11816
parent07cd4909a6c0c275ef42fd27748226975919e336
nfsd4: keep a reference count on client while in use

Get a refcount on the client on SEQUENCE,
Release the refcount and renew the client when all respective compounds completed.
Do not expire the client by the laundromat while in use.
If the client was expired via another path, free it when the compounds
complete and the refcount reaches 0.

Note that unhash_client_locked must call list_del_init on cl_lru as
it may be called twice for the same client (once from nfs4_laundromat
and then from expire_client)

Signed-off-by: Benny Halevy <bhalevy@panasas.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
fs/nfsd/nfs4state.c
fs/nfsd/nfs4xdr.c
fs/nfsd/state.h