Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
*/
void xprt_reserve(struct rpc_task *task)
{
*/
void xprt_reserve(struct rpc_task *task)
{
- struct rpc_xprt *xprt = task->tk_xprt;
task->tk_status = 0;
if (task->tk_rqstp != NULL)
task->tk_status = 0;
if (task->tk_rqstp != NULL)
task->tk_timeout = 0;
task->tk_status = -EAGAIN;
task->tk_timeout = 0;
task->tk_status = -EAGAIN;
+ rcu_read_lock();
+ xprt = rcu_dereference(task->tk_client->cl_xprt);
xprt->ops->alloc_slot(xprt, task);
xprt->ops->alloc_slot(xprt, task);
}
static inline __be32 xprt_alloc_xid(struct rpc_xprt *xprt)
}
static inline __be32 xprt_alloc_xid(struct rpc_xprt *xprt)