/* * Restart an (async) RPC call. Usually called from within the * exit handler. */ void rpc_restart_call(struct rpc_task *task) { if (RPC_ASSASSINATED(task)) return; task->tk_action = call_reserve; rpcproc_count(task->tk_client, task->tk_msg.rpc_proc)++; }
/* * Restart an (async) RPC call. Usually called from within the * exit handler. */ void rpc_restart_call(struct rpc_task *task) { if (task->tk_flags & RPC_TASK_KILLED) { rpc_release_task(task); return; } task->tk_action = call_bind; rpcproc_count(task->tk_client, task->tk_proc)++; }
void rpc_call_setup(struct rpc_task *task, u32 proc, void *argp, void *resp, int flags) { task->tk_action = call_bind; task->tk_proc = proc; task->tk_argp = argp; task->tk_resp = resp; task->tk_flags |= flags; /* Increment call count */ rpcproc_count(task->tk_client, proc)++; }
void rpc_call_setup(struct rpc_task *task, struct rpc_message *msg, int flags) { task->tk_msg = *msg; task->tk_flags |= flags; /* Bind the user cred */ if (task->tk_msg.rpc_cred != NULL) { rpcauth_holdcred(task); } else rpcauth_bindcred(task); if (task->tk_status == 0) task->tk_action = call_reserve; else task->tk_action = NULL; /* Increment call count */ if (task->tk_msg.rpc_proc < task->tk_client->cl_maxproc) rpcproc_count(task->tk_client, task->tk_msg.rpc_proc)++; }