diff options
Diffstat (limited to 'net/sunrpc/clnt.c')
| -rw-r--r-- | net/sunrpc/clnt.c | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index 19c9983d5360..756fc324db9e 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c | |||
| @@ -556,26 +556,16 @@ static const struct rpc_call_ops rpc_default_ops = { | |||
| 556 | */ | 556 | */ |
| 557 | struct rpc_task *rpc_run_task(const struct rpc_task_setup *task_setup_data) | 557 | struct rpc_task *rpc_run_task(const struct rpc_task_setup *task_setup_data) |
| 558 | { | 558 | { |
| 559 | struct rpc_task *task, *ret; | 559 | struct rpc_task *task; |
| 560 | 560 | ||
| 561 | task = rpc_new_task(task_setup_data); | 561 | task = rpc_new_task(task_setup_data); |
| 562 | if (task == NULL) { | 562 | if (IS_ERR(task)) |
| 563 | rpc_release_calldata(task_setup_data->callback_ops, | ||
| 564 | task_setup_data->callback_data); | ||
| 565 | ret = ERR_PTR(-ENOMEM); | ||
| 566 | goto out; | 563 | goto out; |
| 567 | } | ||
| 568 | 564 | ||
| 569 | if (task->tk_status != 0) { | ||
| 570 | ret = ERR_PTR(task->tk_status); | ||
| 571 | rpc_put_task(task); | ||
| 572 | goto out; | ||
| 573 | } | ||
| 574 | atomic_inc(&task->tk_count); | 565 | atomic_inc(&task->tk_count); |
| 575 | rpc_execute(task); | 566 | rpc_execute(task); |
| 576 | ret = task; | ||
| 577 | out: | 567 | out: |
| 578 | return ret; | 568 | return task; |
| 579 | } | 569 | } |
| 580 | EXPORT_SYMBOL_GPL(rpc_run_task); | 570 | EXPORT_SYMBOL_GPL(rpc_run_task); |
| 581 | 571 | ||
| @@ -657,9 +647,8 @@ struct rpc_task *rpc_run_bc_task(struct rpc_rqst *req, | |||
| 657 | * Create an rpc_task to send the data | 647 | * Create an rpc_task to send the data |
| 658 | */ | 648 | */ |
| 659 | task = rpc_new_task(&task_setup_data); | 649 | task = rpc_new_task(&task_setup_data); |
| 660 | if (!task) { | 650 | if (IS_ERR(task)) { |
| 661 | xprt_free_bc_request(req); | 651 | xprt_free_bc_request(req); |
| 662 | task = ERR_PTR(-ENOMEM); | ||
| 663 | goto out; | 652 | goto out; |
| 664 | } | 653 | } |
| 665 | task->tk_rqstp = req; | 654 | task->tk_rqstp = req; |
| @@ -1518,7 +1507,6 @@ call_refreshresult(struct rpc_task *task) | |||
| 1518 | task->tk_action = call_refresh; | 1507 | task->tk_action = call_refresh; |
| 1519 | if (status != -ETIMEDOUT) | 1508 | if (status != -ETIMEDOUT) |
| 1520 | rpc_delay(task, 3*HZ); | 1509 | rpc_delay(task, 3*HZ); |
| 1521 | return; | ||
| 1522 | } | 1510 | } |
| 1523 | 1511 | ||
| 1524 | static __be32 * | 1512 | static __be32 * |
