diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-06-11 19:37:09 +0200 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-07-16 00:10:57 +0200 |
commit | a86dc496b764ebb1431677b38eab45310e5a2ad4 (patch) | |
tree | 2ca9fa18c4f58de08acc7c8f9ea251a279eeba9b /fs/lockd/clntproc.c | |
parent | NFS: Remove BKL from the readdir code (diff) | |
download | linux-a86dc496b764ebb1431677b38eab45310e5a2ad4.tar.xz linux-a86dc496b764ebb1431677b38eab45310e5a2ad4.zip |
SUNRPC: Remove the BKL from the callback functions
Push it into those callback functions that actually need it.
Note that all the NFS operations use their own locking, so don't need the
BKL. Ditto for the rpcbind client.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/lockd/clntproc.c')
-rw-r--r-- | fs/lockd/clntproc.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/lockd/clntproc.c b/fs/lockd/clntproc.c index fd7d4669776e..1f6dc518505c 100644 --- a/fs/lockd/clntproc.c +++ b/fs/lockd/clntproc.c @@ -224,7 +224,9 @@ void nlm_release_call(struct nlm_rqst *call) static void nlmclnt_rpc_release(void *data) { + lock_kernel(); nlm_release_call(data); + unlock_kernel(); } static int nlm_wait_on_grace(wait_queue_head_t *queue) @@ -710,7 +712,9 @@ static void nlmclnt_unlock_callback(struct rpc_task *task, void *data) die: return; retry_rebind: + lock_kernel(); nlm_rebind_host(req->a_host); + unlock_kernel(); retry_unlock: rpc_restart_call(task); } @@ -788,7 +792,9 @@ retry_cancel: /* Don't ever retry more than 3 times */ if (req->a_retries++ >= NLMCLNT_MAX_RETRIES) goto die; + lock_kernel(); nlm_rebind_host(req->a_host); + unlock_kernel(); rpc_restart_call(task); rpc_delay(task, 30 * HZ); } |