500EXPORT_SYMBOL_GPL(rpc_bind_new_program);
501
502
503
504
505static void
506rpc_default_callback(struct rpc_task *task, void *data)
507{
508}
509
510static const struct rpc_call_ops rpc_default_ops = {
511 .rpc_call_done = rpc_default_callback,
512};
513
514
515
516
517
518struct rpc_task *rpc_run_task(const struct rpc_task_setup *task_setup_data)
519{
520 struct rpc_task *task, *ret;
521
522 task = rpc_new_task(task_setup_data);
523 if (task == NULL) {
524 rpc_release_calldata(task_setup_data->callback_ops,
525 task_setup_data->callback_data);
526 ret = ERR_PTR(-ENOMEM);
527 goto out;
528 }
529
530 if (task->tk_status != 0) {
531 ret = ERR_PTR(task->tk_status);
532 rpc_put_task(task);
533 goto out;
534 }
535 atomic_inc(&task->tk_count);
536 rpc_execute(task);
537 ret = task;
538out:
539 return ret;
540}