diff options
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) | |||
224 | 224 | ||
225 | static void nlmclnt_rpc_release(void *data) | 225 | static void nlmclnt_rpc_release(void *data) |
226 | { | 226 | { |
227 | lock_kernel(); | ||
227 | nlm_release_call(data); | 228 | nlm_release_call(data); |
229 | unlock_kernel(); | ||
228 | } | 230 | } |
229 | 231 | ||
230 | static int nlm_wait_on_grace(wait_queue_head_t *queue) | 232 | 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) | |||
710 | die: | 712 | die: |
711 | return; | 713 | return; |
712 | retry_rebind: | 714 | retry_rebind: |
715 | lock_kernel(); | ||
713 | nlm_rebind_host(req->a_host); | 716 | nlm_rebind_host(req->a_host); |
717 | unlock_kernel(); | ||
714 | retry_unlock: | 718 | retry_unlock: |
715 | rpc_restart_call(task); | 719 | rpc_restart_call(task); |
716 | } | 720 | } |
@@ -788,7 +792,9 @@ retry_cancel: | |||
788 | /* Don't ever retry more than 3 times */ | 792 | /* Don't ever retry more than 3 times */ |
789 | if (req->a_retries++ >= NLMCLNT_MAX_RETRIES) | 793 | if (req->a_retries++ >= NLMCLNT_MAX_RETRIES) |
790 | goto die; | 794 | goto die; |
795 | lock_kernel(); | ||
791 | nlm_rebind_host(req->a_host); | 796 | nlm_rebind_host(req->a_host); |
797 | unlock_kernel(); | ||
792 | rpc_restart_call(task); | 798 | rpc_restart_call(task); |
793 | rpc_delay(task, 30 * HZ); | 799 | rpc_delay(task, 30 * HZ); |
794 | } | 800 | } |