Lines Matching refs:req
184 struct rpc_rqst *req = task->tk_rqstp; in xprt_reserve_xprt() local
193 if (req != NULL) in xprt_reserve_xprt()
194 req->rq_ntrans++; in xprt_reserve_xprt()
203 if (req == NULL) in xprt_reserve_xprt()
205 else if (!req->rq_ntrans) in xprt_reserve_xprt()
235 struct rpc_rqst *req = task->tk_rqstp; in xprt_reserve_xprt_cong() local
243 if (req == NULL) { in xprt_reserve_xprt_cong()
249 req->rq_ntrans++; in xprt_reserve_xprt_cong()
254 if (req) in xprt_reserve_xprt_cong()
255 __xprt_put_cong(xprt, req); in xprt_reserve_xprt_cong()
259 if (req == NULL) in xprt_reserve_xprt_cong()
261 else if (!req->rq_ntrans) in xprt_reserve_xprt_cong()
283 struct rpc_rqst *req; in __xprt_lock_write_func() local
285 req = task->tk_rqstp; in __xprt_lock_write_func()
287 if (req) in __xprt_lock_write_func()
288 req->rq_ntrans++; in __xprt_lock_write_func()
305 struct rpc_rqst *req; in __xprt_lock_write_cong_func() local
307 req = task->tk_rqstp; in __xprt_lock_write_cong_func()
308 if (req == NULL) { in __xprt_lock_write_cong_func()
314 req->rq_ntrans++; in __xprt_lock_write_cong_func()
335 struct rpc_rqst *req = task->tk_rqstp; in xprt_task_clear_bytes_sent() local
336 if (req != NULL) in xprt_task_clear_bytes_sent()
337 req->rq_bytes_sent = 0; in xprt_task_clear_bytes_sent()
390 struct rpc_rqst *req = task->tk_rqstp; in __xprt_get_cong() local
392 if (req->rq_cong) in __xprt_get_cong()
398 req->rq_cong = 1; in __xprt_get_cong()
408 __xprt_put_cong(struct rpc_xprt *xprt, struct rpc_rqst *req) in __xprt_put_cong() argument
410 if (!req->rq_cong) in __xprt_put_cong()
412 req->rq_cong = 0; in __xprt_put_cong()
425 struct rpc_rqst *req = task->tk_rqstp; in xprt_release_rqst_cong() local
427 __xprt_put_cong(req->rq_xprt, req); in xprt_release_rqst_cong()
449 struct rpc_rqst *req = task->tk_rqstp; in xprt_adjust_cwnd() local
467 __xprt_put_cong(xprt, req); in xprt_adjust_cwnd()
497 struct rpc_rqst *req = task->tk_rqstp; in xprt_wait_for_buffer_space() local
498 struct rpc_xprt *xprt = req->rq_xprt; in xprt_wait_for_buffer_space()
500 task->tk_timeout = RPC_IS_SOFT(task) ? req->rq_timeout : 0; in xprt_wait_for_buffer_space()
548 struct rpc_rqst *req = task->tk_rqstp; in xprt_set_retrans_timeout_rtt() local
552 task->tk_timeout <<= rpc_ntimeo(rtt, timer) + req->rq_retries; in xprt_set_retrans_timeout_rtt()
558 static void xprt_reset_majortimeo(struct rpc_rqst *req) in xprt_reset_majortimeo() argument
560 const struct rpc_timeout *to = req->rq_task->tk_client->cl_timeout; in xprt_reset_majortimeo()
562 req->rq_majortimeo = req->rq_timeout; in xprt_reset_majortimeo()
564 req->rq_majortimeo <<= to->to_retries; in xprt_reset_majortimeo()
566 req->rq_majortimeo += to->to_increment * to->to_retries; in xprt_reset_majortimeo()
567 if (req->rq_majortimeo > to->to_maxval || req->rq_majortimeo == 0) in xprt_reset_majortimeo()
568 req->rq_majortimeo = to->to_maxval; in xprt_reset_majortimeo()
569 req->rq_majortimeo += jiffies; in xprt_reset_majortimeo()
577 int xprt_adjust_timeout(struct rpc_rqst *req) in xprt_adjust_timeout() argument
579 struct rpc_xprt *xprt = req->rq_xprt; in xprt_adjust_timeout()
580 const struct rpc_timeout *to = req->rq_task->tk_client->cl_timeout; in xprt_adjust_timeout()
583 if (time_before(jiffies, req->rq_majortimeo)) { in xprt_adjust_timeout()
585 req->rq_timeout <<= 1; in xprt_adjust_timeout()
587 req->rq_timeout += to->to_increment; in xprt_adjust_timeout()
588 if (to->to_maxval && req->rq_timeout >= to->to_maxval) in xprt_adjust_timeout()
589 req->rq_timeout = to->to_maxval; in xprt_adjust_timeout()
590 req->rq_retries++; in xprt_adjust_timeout()
592 req->rq_timeout = to->to_initval; in xprt_adjust_timeout()
593 req->rq_retries = 0; in xprt_adjust_timeout()
594 xprt_reset_majortimeo(req); in xprt_adjust_timeout()
597 rpc_init_rtt(req->rq_task->tk_client->cl_rtt, to->to_initval); in xprt_adjust_timeout()
602 if (req->rq_timeout == 0) { in xprt_adjust_timeout()
604 req->rq_timeout = 5 * HZ; in xprt_adjust_timeout()
827 struct rpc_rqst *req = task->tk_rqstp; in xprt_update_rtt() local
830 long m = usecs_to_jiffies(ktime_to_us(req->rq_rtt)); in xprt_update_rtt()
833 if (req->rq_ntrans == 1) in xprt_update_rtt()
835 rpc_set_timeo(rtt, timer, req->rq_ntrans - 1); in xprt_update_rtt()
848 struct rpc_rqst *req = task->tk_rqstp; in xprt_complete_rqst() local
849 struct rpc_xprt *xprt = req->rq_xprt; in xprt_complete_rqst()
852 task->tk_pid, ntohl(req->rq_xid), copied); in xprt_complete_rqst()
853 trace_xprt_complete_rqst(xprt, req->rq_xid, copied); in xprt_complete_rqst()
856 req->rq_rtt = ktime_sub(ktime_get(), req->rq_xtime); in xprt_complete_rqst()
860 list_del_init(&req->rq_list); in xprt_complete_rqst()
861 req->rq_private_buf.len = copied; in xprt_complete_rqst()
865 req->rq_reply_bytes_recvd = copied; in xprt_complete_rqst()
872 struct rpc_rqst *req = task->tk_rqstp; in xprt_timer() local
873 struct rpc_xprt *xprt = req->rq_xprt; in xprt_timer()
880 if (!req->rq_reply_bytes_recvd) { in xprt_timer()
900 struct rpc_rqst *req = task->tk_rqstp; in xprt_prepare_transmit() local
901 struct rpc_xprt *xprt = req->rq_xprt; in xprt_prepare_transmit()
907 if (!req->rq_bytes_sent) { in xprt_prepare_transmit()
908 if (req->rq_reply_bytes_recvd) { in xprt_prepare_transmit()
909 task->tk_status = req->rq_reply_bytes_recvd; in xprt_prepare_transmit()
914 && req->rq_connect_cookie == xprt->connect_cookie) { in xprt_prepare_transmit()
943 struct rpc_rqst *req = task->tk_rqstp; in xprt_transmit() local
944 struct rpc_xprt *xprt = req->rq_xprt; in xprt_transmit()
947 dprintk("RPC: %5u xprt_transmit(%u)\n", task->tk_pid, req->rq_slen); in xprt_transmit()
949 if (!req->rq_reply_bytes_recvd) { in xprt_transmit()
950 if (list_empty(&req->rq_list) && rpc_reply_expected(task)) { in xprt_transmit()
956 memcpy(&req->rq_private_buf, &req->rq_rcv_buf, in xprt_transmit()
957 sizeof(req->rq_private_buf)); in xprt_transmit()
959 list_add_tail(&req->rq_list, &xprt->recv); in xprt_transmit()
961 xprt_reset_majortimeo(req); in xprt_transmit()
965 } else if (!req->rq_bytes_sent) in xprt_transmit()
968 req->rq_xtime = ktime_get(); in xprt_transmit()
970 trace_xprt_transmit(xprt, req->rq_xid, status); in xprt_transmit()
1000 if (!req->rq_reply_bytes_recvd && rpc_reply_expected(task)) in xprt_transmit()
1002 req->rq_connect_cookie = xprt->connect_cookie; in xprt_transmit()
1037 struct rpc_rqst *req = ERR_PTR(-EAGAIN); in xprt_dynamic_alloc_slot() local
1041 req = kzalloc(sizeof(struct rpc_rqst), gfp_flags); in xprt_dynamic_alloc_slot()
1042 if (req != NULL) in xprt_dynamic_alloc_slot()
1045 req = ERR_PTR(-ENOMEM); in xprt_dynamic_alloc_slot()
1047 return req; in xprt_dynamic_alloc_slot()
1050 static bool xprt_dynamic_free_slot(struct rpc_xprt *xprt, struct rpc_rqst *req) in xprt_dynamic_free_slot() argument
1053 kfree(req); in xprt_dynamic_free_slot()
1061 struct rpc_rqst *req; in xprt_alloc_slot() local
1065 req = list_entry(xprt->free.next, struct rpc_rqst, rq_list); in xprt_alloc_slot()
1066 list_del(&req->rq_list); in xprt_alloc_slot()
1069 req = xprt_dynamic_alloc_slot(xprt, GFP_NOWAIT|__GFP_NOWARN); in xprt_alloc_slot()
1070 if (!IS_ERR(req)) in xprt_alloc_slot()
1072 switch (PTR_ERR(req)) { in xprt_alloc_slot()
1088 task->tk_rqstp = req; in xprt_alloc_slot()
1108 static void xprt_free_slot(struct rpc_xprt *xprt, struct rpc_rqst *req) in xprt_free_slot() argument
1111 if (!xprt_dynamic_free_slot(xprt, req)) { in xprt_free_slot()
1112 memset(req, 0, sizeof(*req)); /* mark unused */ in xprt_free_slot()
1113 list_add(&req->rq_list, &xprt->free); in xprt_free_slot()
1121 struct rpc_rqst *req; in xprt_free_all_slots() local
1123 req = list_first_entry(&xprt->free, struct rpc_rqst, rq_list); in xprt_free_all_slots()
1124 list_del(&req->rq_list); in xprt_free_all_slots()
1125 kfree(req); in xprt_free_all_slots()
1134 struct rpc_rqst *req; in xprt_alloc() local
1144 req = kzalloc(sizeof(struct rpc_rqst), GFP_KERNEL); in xprt_alloc()
1145 if (!req) in xprt_alloc()
1147 list_add(&req->rq_list, &xprt->free); in xprt_alloc()
1235 struct rpc_rqst *req = task->tk_rqstp; in xprt_request_init() local
1237 INIT_LIST_HEAD(&req->rq_list); in xprt_request_init()
1238 req->rq_timeout = task->tk_client->cl_timeout->to_initval; in xprt_request_init()
1239 req->rq_task = task; in xprt_request_init()
1240 req->rq_xprt = xprt; in xprt_request_init()
1241 req->rq_buffer = NULL; in xprt_request_init()
1242 req->rq_xid = xprt_alloc_xid(xprt); in xprt_request_init()
1243 req->rq_connect_cookie = xprt->connect_cookie - 1; in xprt_request_init()
1244 req->rq_bytes_sent = 0; in xprt_request_init()
1245 req->rq_snd_buf.len = 0; in xprt_request_init()
1246 req->rq_snd_buf.buflen = 0; in xprt_request_init()
1247 req->rq_rcv_buf.len = 0; in xprt_request_init()
1248 req->rq_rcv_buf.buflen = 0; in xprt_request_init()
1249 req->rq_release_snd_buf = NULL; in xprt_request_init()
1250 xprt_reset_majortimeo(req); in xprt_request_init()
1252 req, ntohl(req->rq_xid)); in xprt_request_init()
1263 struct rpc_rqst *req = task->tk_rqstp; in xprt_release() local
1265 if (req == NULL) { in xprt_release()
1276 xprt = req->rq_xprt; in xprt_release()
1285 if (!list_empty(&req->rq_list)) in xprt_release()
1286 list_del(&req->rq_list); in xprt_release()
1292 if (req->rq_buffer) in xprt_release()
1293 xprt->ops->buf_free(req->rq_buffer); in xprt_release()
1295 if (req->rq_cred != NULL) in xprt_release()
1296 put_rpccred(req->rq_cred); in xprt_release()
1298 if (req->rq_release_snd_buf) in xprt_release()
1299 req->rq_release_snd_buf(req); in xprt_release()
1301 dprintk("RPC: %5u release request %p\n", task->tk_pid, req); in xprt_release()
1302 if (likely(!bc_prealloc(req))) in xprt_release()
1303 xprt_free_slot(xprt, req); in xprt_release()
1305 xprt_free_bc_request(req); in xprt_release()