diff options
| author | Neil Brown <neilb@cse.unsw.edu.au> | 2003-03-14 02:11:42 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2003-03-14 02:11:42 -0800 |
| commit | 789d95e669710036adc1734938e57ceb3b3d46bb (patch) | |
| tree | eb6a49a118a7dcb56ed3d3ce1d99c94dfa72d698 /include/linux/sunrpc/cache.h | |
| parent | 7cb09575b27bd76531b414a947617c0090edc0d8 (diff) | |
[PATCH] kNFSd: Fix deadlock problem in lockd.
nlmsvc_lock calls nlmsvc_create_block with file->f_sema
held.
nlmsvc_create_block calls nlmclnt_lookup_host which might
call nlm_gc_hosts which might, eventually, try to claim
file->f_sema for the same file -> deadlock.
nlmsvc_create_block does not need any protection under
any lock as lockd is single-threaded and _create_block
only plays with internal data structures.
So we release the f_sema before calling in, and make sure
it gets claimed again afterwards.
Diffstat (limited to 'include/linux/sunrpc/cache.h')
0 files changed, 0 insertions, 0 deletions
