nfsd4: shut down more of delegation earlier
authorJ. Bruce Fields <bfields@redhat.com>
Thu, 21 Mar 2013 15:21:50 +0000 (11:21 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Thu, 4 Apr 2013 17:25:15 +0000 (13:25 -0400)
Once we've unhashed the delegation, it's only hanging around for the
benefit of an oustanding recall, which only needs the encoded
filehandle, stateid, and dl_retries counter.  No point keeping the file
around any longer, or keeping it hashed.

This also fixes a race: calls to idr_remove should really be serialized
by the caller, but the nfs4_put_delegation call from the callback code
isn't taking the state lock.

(Better might be to cancel the callback before destroying the
delegation, and remove any need for reference counting--but I don't see
an easy way to cancel an rpc call.)

Signed-off-by: J. Bruce Fields <bfields@redhat.com>

No differences found