Lines Matching refs:req
183 struct rpc_rqst *req = task->tk_rqstp; in xprt_reserve_xprt() local
192 if (req != NULL) in xprt_reserve_xprt()
193 req->rq_ntrans++; in xprt_reserve_xprt()
202 if (req == NULL) in xprt_reserve_xprt()
204 else if (!req->rq_ntrans) in xprt_reserve_xprt()
234 struct rpc_rqst *req = task->tk_rqstp; in xprt_reserve_xprt_cong() local
242 if (req == NULL) { in xprt_reserve_xprt_cong()
248 req->rq_ntrans++; in xprt_reserve_xprt_cong()
256 if (req == NULL) in xprt_reserve_xprt_cong()
258 else if (!req->rq_ntrans) in xprt_reserve_xprt_cong()
280 struct rpc_rqst *req; in __xprt_lock_write_func() local
282 req = task->tk_rqstp; in __xprt_lock_write_func()
284 if (req) in __xprt_lock_write_func()
285 req->rq_ntrans++; in __xprt_lock_write_func()
302 struct rpc_rqst *req; in __xprt_lock_write_cong_func() local
304 req = task->tk_rqstp; in __xprt_lock_write_cong_func()
305 if (req == NULL) { in __xprt_lock_write_cong_func()
311 req->rq_ntrans++; in __xprt_lock_write_cong_func()
332 struct rpc_rqst *req = task->tk_rqstp; in xprt_task_clear_bytes_sent() local
333 if (req != NULL) in xprt_task_clear_bytes_sent()
334 req->rq_bytes_sent = 0; in xprt_task_clear_bytes_sent()
387 struct rpc_rqst *req = task->tk_rqstp; in __xprt_get_cong() local
389 if (req->rq_cong) in __xprt_get_cong()
395 req->rq_cong = 1; in __xprt_get_cong()
405 __xprt_put_cong(struct rpc_xprt *xprt, struct rpc_rqst *req) in __xprt_put_cong() argument
407 if (!req->rq_cong) in __xprt_put_cong()
409 req->rq_cong = 0; in __xprt_put_cong()
422 struct rpc_rqst *req = task->tk_rqstp; in xprt_release_rqst_cong() local
424 __xprt_put_cong(req->rq_xprt, req); in xprt_release_rqst_cong()
446 struct rpc_rqst *req = task->tk_rqstp; in xprt_adjust_cwnd() local
464 __xprt_put_cong(xprt, req); in xprt_adjust_cwnd()
494 struct rpc_rqst *req = task->tk_rqstp; in xprt_wait_for_buffer_space() local
495 struct rpc_xprt *xprt = req->rq_xprt; in xprt_wait_for_buffer_space()
497 task->tk_timeout = RPC_IS_SOFT(task) ? req->rq_timeout : 0; in xprt_wait_for_buffer_space()
545 struct rpc_rqst *req = task->tk_rqstp; in xprt_set_retrans_timeout_rtt() local
549 task->tk_timeout <<= rpc_ntimeo(rtt, timer) + req->rq_retries; in xprt_set_retrans_timeout_rtt()
555 static void xprt_reset_majortimeo(struct rpc_rqst *req) in xprt_reset_majortimeo() argument
557 const struct rpc_timeout *to = req->rq_task->tk_client->cl_timeout; in xprt_reset_majortimeo()
559 req->rq_majortimeo = req->rq_timeout; in xprt_reset_majortimeo()
561 req->rq_majortimeo <<= to->to_retries; in xprt_reset_majortimeo()
563 req->rq_majortimeo += to->to_increment * to->to_retries; in xprt_reset_majortimeo()
564 if (req->rq_majortimeo > to->to_maxval || req->rq_majortimeo == 0) in xprt_reset_majortimeo()
565 req->rq_majortimeo = to->to_maxval; in xprt_reset_majortimeo()
566 req->rq_majortimeo += jiffies; in xprt_reset_majortimeo()
574 int xprt_adjust_timeout(struct rpc_rqst *req) in xprt_adjust_timeout() argument
576 struct rpc_xprt *xprt = req->rq_xprt; in xprt_adjust_timeout()
577 const struct rpc_timeout *to = req->rq_task->tk_client->cl_timeout; in xprt_adjust_timeout()
580 if (time_before(jiffies, req->rq_majortimeo)) { in xprt_adjust_timeout()
582 req->rq_timeout <<= 1; in xprt_adjust_timeout()
584 req->rq_timeout += to->to_increment; in xprt_adjust_timeout()
585 if (to->to_maxval && req->rq_timeout >= to->to_maxval) in xprt_adjust_timeout()
586 req->rq_timeout = to->to_maxval; in xprt_adjust_timeout()
587 req->rq_retries++; in xprt_adjust_timeout()
589 req->rq_timeout = to->to_initval; in xprt_adjust_timeout()
590 req->rq_retries = 0; in xprt_adjust_timeout()
591 xprt_reset_majortimeo(req); in xprt_adjust_timeout()
594 rpc_init_rtt(req->rq_task->tk_client->cl_rtt, to->to_initval); in xprt_adjust_timeout()
599 if (req->rq_timeout == 0) { in xprt_adjust_timeout()
601 req->rq_timeout = 5 * HZ; in xprt_adjust_timeout()
824 struct rpc_rqst *req = task->tk_rqstp; in xprt_update_rtt() local
827 long m = usecs_to_jiffies(ktime_to_us(req->rq_rtt)); in xprt_update_rtt()
830 if (req->rq_ntrans == 1) in xprt_update_rtt()
832 rpc_set_timeo(rtt, timer, req->rq_ntrans - 1); in xprt_update_rtt()
845 struct rpc_rqst *req = task->tk_rqstp; in xprt_complete_rqst() local
846 struct rpc_xprt *xprt = req->rq_xprt; in xprt_complete_rqst()
849 task->tk_pid, ntohl(req->rq_xid), copied); in xprt_complete_rqst()
850 trace_xprt_complete_rqst(xprt, req->rq_xid, copied); in xprt_complete_rqst()
853 req->rq_rtt = ktime_sub(ktime_get(), req->rq_xtime); in xprt_complete_rqst()
857 list_del_init(&req->rq_list); in xprt_complete_rqst()
858 req->rq_private_buf.len = copied; in xprt_complete_rqst()
862 req->rq_reply_bytes_recvd = copied; in xprt_complete_rqst()
869 struct rpc_rqst *req = task->tk_rqstp; in xprt_timer() local
870 struct rpc_xprt *xprt = req->rq_xprt; in xprt_timer()
877 if (!req->rq_reply_bytes_recvd) { in xprt_timer()
897 struct rpc_rqst *req = task->tk_rqstp; in xprt_prepare_transmit() local
898 struct rpc_xprt *xprt = req->rq_xprt; in xprt_prepare_transmit()
904 if (!req->rq_bytes_sent) { in xprt_prepare_transmit()
905 if (req->rq_reply_bytes_recvd) { in xprt_prepare_transmit()
906 task->tk_status = req->rq_reply_bytes_recvd; in xprt_prepare_transmit()
911 && req->rq_connect_cookie == xprt->connect_cookie) { in xprt_prepare_transmit()
940 struct rpc_rqst *req = task->tk_rqstp; in xprt_transmit() local
941 struct rpc_xprt *xprt = req->rq_xprt; in xprt_transmit()
944 dprintk("RPC: %5u xprt_transmit(%u)\n", task->tk_pid, req->rq_slen); in xprt_transmit()
946 if (!req->rq_reply_bytes_recvd) { in xprt_transmit()
947 if (list_empty(&req->rq_list) && rpc_reply_expected(task)) { in xprt_transmit()
953 memcpy(&req->rq_private_buf, &req->rq_rcv_buf, in xprt_transmit()
954 sizeof(req->rq_private_buf)); in xprt_transmit()
956 list_add_tail(&req->rq_list, &xprt->recv); in xprt_transmit()
958 xprt_reset_majortimeo(req); in xprt_transmit()
962 } else if (!req->rq_bytes_sent) in xprt_transmit()
965 req->rq_xtime = ktime_get(); in xprt_transmit()
967 trace_xprt_transmit(xprt, req->rq_xid, status); in xprt_transmit()
996 if (!req->rq_reply_bytes_recvd && rpc_reply_expected(task)) in xprt_transmit()
998 req->rq_connect_cookie = xprt->connect_cookie; in xprt_transmit()
1033 struct rpc_rqst *req = ERR_PTR(-EAGAIN); in xprt_dynamic_alloc_slot() local
1037 req = kzalloc(sizeof(struct rpc_rqst), gfp_flags); in xprt_dynamic_alloc_slot()
1038 if (req != NULL) in xprt_dynamic_alloc_slot()
1041 req = ERR_PTR(-ENOMEM); in xprt_dynamic_alloc_slot()
1043 return req; in xprt_dynamic_alloc_slot()
1046 static bool xprt_dynamic_free_slot(struct rpc_xprt *xprt, struct rpc_rqst *req) in xprt_dynamic_free_slot() argument
1049 kfree(req); in xprt_dynamic_free_slot()
1057 struct rpc_rqst *req; in xprt_alloc_slot() local
1061 req = list_entry(xprt->free.next, struct rpc_rqst, rq_list); in xprt_alloc_slot()
1062 list_del(&req->rq_list); in xprt_alloc_slot()
1065 req = xprt_dynamic_alloc_slot(xprt, GFP_NOWAIT|__GFP_NOWARN); in xprt_alloc_slot()
1066 if (!IS_ERR(req)) in xprt_alloc_slot()
1068 switch (PTR_ERR(req)) { in xprt_alloc_slot()
1084 task->tk_rqstp = req; in xprt_alloc_slot()
1104 static void xprt_free_slot(struct rpc_xprt *xprt, struct rpc_rqst *req) in xprt_free_slot() argument
1107 if (!xprt_dynamic_free_slot(xprt, req)) { in xprt_free_slot()
1108 memset(req, 0, sizeof(*req)); /* mark unused */ in xprt_free_slot()
1109 list_add(&req->rq_list, &xprt->free); in xprt_free_slot()
1117 struct rpc_rqst *req; in xprt_free_all_slots() local
1119 req = list_first_entry(&xprt->free, struct rpc_rqst, rq_list); in xprt_free_all_slots()
1120 list_del(&req->rq_list); in xprt_free_all_slots()
1121 kfree(req); in xprt_free_all_slots()
1130 struct rpc_rqst *req; in xprt_alloc() local
1140 req = kzalloc(sizeof(struct rpc_rqst), GFP_KERNEL); in xprt_alloc()
1141 if (!req) in xprt_alloc()
1143 list_add(&req->rq_list, &xprt->free); in xprt_alloc()
1231 struct rpc_rqst *req = task->tk_rqstp; in xprt_request_init() local
1233 INIT_LIST_HEAD(&req->rq_list); in xprt_request_init()
1234 req->rq_timeout = task->tk_client->cl_timeout->to_initval; in xprt_request_init()
1235 req->rq_task = task; in xprt_request_init()
1236 req->rq_xprt = xprt; in xprt_request_init()
1237 req->rq_buffer = NULL; in xprt_request_init()
1238 req->rq_xid = xprt_alloc_xid(xprt); in xprt_request_init()
1239 req->rq_connect_cookie = xprt->connect_cookie - 1; in xprt_request_init()
1240 req->rq_bytes_sent = 0; in xprt_request_init()
1241 req->rq_snd_buf.len = 0; in xprt_request_init()
1242 req->rq_snd_buf.buflen = 0; in xprt_request_init()
1243 req->rq_rcv_buf.len = 0; in xprt_request_init()
1244 req->rq_rcv_buf.buflen = 0; in xprt_request_init()
1245 req->rq_release_snd_buf = NULL; in xprt_request_init()
1246 xprt_reset_majortimeo(req); in xprt_request_init()
1248 req, ntohl(req->rq_xid)); in xprt_request_init()
1259 struct rpc_rqst *req = task->tk_rqstp; in xprt_release() local
1261 if (req == NULL) { in xprt_release()
1272 xprt = req->rq_xprt; in xprt_release()
1281 if (!list_empty(&req->rq_list)) in xprt_release()
1282 list_del(&req->rq_list); in xprt_release()
1288 if (req->rq_buffer) in xprt_release()
1289 xprt->ops->buf_free(req->rq_buffer); in xprt_release()
1290 if (req->rq_cred != NULL) in xprt_release()
1291 put_rpccred(req->rq_cred); in xprt_release()
1293 if (req->rq_release_snd_buf) in xprt_release()
1294 req->rq_release_snd_buf(req); in xprt_release()
1296 dprintk("RPC: %5u release request %p\n", task->tk_pid, req); in xprt_release()
1297 if (likely(!bc_prealloc(req))) in xprt_release()
1298 xprt_free_slot(xprt, req); in xprt_release()
1300 xprt_free_bc_request(req); in xprt_release()