Loading net/sunrpc/xprt.c +7 −16 Original line number Diff line number Diff line Loading @@ -1123,27 +1123,18 @@ bool xprt_prepare_transmit(struct rpc_task *task) { struct rpc_rqst *req = task->tk_rqstp; struct rpc_xprt *xprt = req->rq_xprt; bool ret = false; dprintk("RPC: %5u xprt_prepare_transmit\n", task->tk_pid); spin_lock_bh(&xprt->transport_lock); if (!req->rq_bytes_sent) { if (req->rq_reply_bytes_recvd) { task->tk_status = req->rq_reply_bytes_recvd; goto out_unlock; } if (!xprt_lock_write(xprt, task)) { /* Race breaker: someone may have transmitted us */ if (!test_bit(RPC_TASK_NEED_XMIT, &task->tk_runstate)) goto out_unlock; } if (!xprt->ops->reserve_xprt(xprt, task)) { task->tk_status = -EAGAIN; goto out_unlock; rpc_wake_up_queued_task_set_status(&xprt->sending, task, 0); return false; } ret = true; out_unlock: spin_unlock_bh(&xprt->transport_lock); return ret; return true; } void xprt_end_transmit(struct rpc_task *task) Loading Loading
net/sunrpc/xprt.c +7 −16 Original line number Diff line number Diff line Loading @@ -1123,27 +1123,18 @@ bool xprt_prepare_transmit(struct rpc_task *task) { struct rpc_rqst *req = task->tk_rqstp; struct rpc_xprt *xprt = req->rq_xprt; bool ret = false; dprintk("RPC: %5u xprt_prepare_transmit\n", task->tk_pid); spin_lock_bh(&xprt->transport_lock); if (!req->rq_bytes_sent) { if (req->rq_reply_bytes_recvd) { task->tk_status = req->rq_reply_bytes_recvd; goto out_unlock; } if (!xprt_lock_write(xprt, task)) { /* Race breaker: someone may have transmitted us */ if (!test_bit(RPC_TASK_NEED_XMIT, &task->tk_runstate)) goto out_unlock; } if (!xprt->ops->reserve_xprt(xprt, task)) { task->tk_status = -EAGAIN; goto out_unlock; rpc_wake_up_queued_task_set_status(&xprt->sending, task, 0); return false; } ret = true; out_unlock: spin_unlock_bh(&xprt->transport_lock); return ret; return true; } void xprt_end_transmit(struct rpc_task *task) Loading