nfsd4: don't sleep in lease-break callback
authorJ. Bruce Fields <bfields@citi.umich.edu>
Wed, 3 Mar 2010 19:52:55 +0000 (14:52 -0500)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Thu, 22 Apr 2010 15:34:01 +0000 (11:34 -0400)
commitb5a1a81e5c25fb6bb3fdc1812ba69ff6ab638fcf
treec524a75d111f4060eb985161478362ac18c17169
parent3c4ab2aaa90826060b1e8d4036f9bb8325f8759e
nfsd4: don't sleep in lease-break callback

The NFSv4 server's fl_break callback can sleep (dropping the BKL), in
order to allocate a new rpc task to send a recall to the client.

As far as I can tell this doesn't cause any races in the current code,
but the analysis is difficult.  Also, the sleep here may complicate the
move away from the BKL.

So, just schedule some work to do the job for us instead.  The work will
later also prove useful for restarting a call after the callback
information is changed.

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