diff options
Diffstat (limited to 'fs/lockd/clntproc.c')
| -rw-r--r-- | fs/lockd/clntproc.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/lockd/clntproc.c b/fs/lockd/clntproc.c index 5df517b81f3f..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) |
| @@ -430,7 +432,7 @@ nlmclnt_test(struct nlm_rqst *req, struct file_lock *fl) | |||
| 430 | * Report the conflicting lock back to the application. | 432 | * Report the conflicting lock back to the application. |
| 431 | */ | 433 | */ |
| 432 | fl->fl_start = req->a_res.lock.fl.fl_start; | 434 | fl->fl_start = req->a_res.lock.fl.fl_start; |
| 433 | fl->fl_end = req->a_res.lock.fl.fl_start; | 435 | fl->fl_end = req->a_res.lock.fl.fl_end; |
| 434 | fl->fl_type = req->a_res.lock.fl.fl_type; | 436 | fl->fl_type = req->a_res.lock.fl.fl_type; |
| 435 | fl->fl_pid = 0; | 437 | fl->fl_pid = 0; |
| 436 | break; | 438 | break; |
| @@ -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 | } |
