/* * 1. Reserve an RPC call slot */ static void call_reserve(struct rpc_task *task) { struct rpc_clnt *clnt = task->tk_client; dprintk("RPC: %4d call_reserve\n", task->tk_pid); if (!clnt->cl_port) { printk(KERN_NOTICE "%s: couldn't bind to server %s - %s.\n", clnt->cl_protname, clnt->cl_server, clnt->cl_softrtry? "giving up" : "retrying"); if (!clnt->cl_softrtry) { rpc_delay(task, 5*HZ); return; } rpc_exit(task, -EIO); return; } if (!rpcauth_uptodatecred(task)) { task->tk_action = call_refresh; return; } task->tk_action = call_reserveresult; task->tk_timeout = clnt->cl_timeout.to_resrvval; task->tk_status = 0; clnt->cl_stats->rpccnt++; xprt_reserve(task); }
/* * 1. Reserve an RPC call slot */ static void call_reserve(struct rpc_task *task) { struct rpc_clnt *clnt = task->tk_client; if (task->tk_msg.rpc_proc > clnt->cl_maxproc) { printk(KERN_WARNING "%s (vers %d): bad procedure number %d\n", clnt->cl_protname, clnt->cl_vers, task->tk_msg.rpc_proc); rpc_exit(task, -EIO); return; } dprintk("RPC: %4d call_reserve\n", task->tk_pid); if (!rpcauth_uptodatecred(task)) { task->tk_action = call_refresh; return; } task->tk_status = 0; task->tk_action = call_reserveresult; task->tk_timeout = clnt->cl_timeout.to_resrvval; clnt->cl_stats->rpccnt++; xprt_reserve(task); }