nfsd4: fix delegation recall race use-after-free
authorJ. Bruce Fields <bfields@citi.umich.edu>
Tue, 1 Jun 2010 15:21:40 +0000 (11:21 -0400)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Thu, 24 Jun 2010 16:24:55 +0000 (12:24 -0400)
commitcba9ba4b902270c22f8b9c5149a284216b633fc1
tree8d51f4f169e25113a319e794afe130de53db4ca2
parentac94bf582529343bb7f354d0eef6dc4e566bbbd5
nfsd4: fix delegation recall race use-after-free

When the rarely-used callback-connection-changing setclientid occurs
simultaneously with a delegation recall, we rerun the recall by
requeueing it on a workqueue.  But we also need to take a reference on
the delegation in that case, since the delegation held by the rpc itself
will be released by the rpc_release callback.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
fs/nfsd/nfs4callback.c