]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit8ea8941bdd920199ef01011647805c0c90531e85
treec524a75d111f4060eb985161478362ac18c17169
parent6001b4e4ff04ee6ffec73f6a56ae65298f94f276
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