Lines Matching refs:xprt

157 xprt_rdma_format_addresses4(struct rpc_xprt *xprt, struct sockaddr *sap)  in xprt_rdma_format_addresses4()  argument
163 xprt->address_strings[RPC_DISPLAY_HEX_ADDR] = kstrdup(buf, GFP_KERNEL); in xprt_rdma_format_addresses4()
165 xprt->address_strings[RPC_DISPLAY_NETID] = RPCBIND_NETID_RDMA; in xprt_rdma_format_addresses4()
169 xprt_rdma_format_addresses6(struct rpc_xprt *xprt, struct sockaddr *sap) in xprt_rdma_format_addresses6() argument
175 xprt->address_strings[RPC_DISPLAY_HEX_ADDR] = kstrdup(buf, GFP_KERNEL); in xprt_rdma_format_addresses6()
177 xprt->address_strings[RPC_DISPLAY_NETID] = RPCBIND_NETID_RDMA6; in xprt_rdma_format_addresses6()
181 xprt_rdma_format_addresses(struct rpc_xprt *xprt, struct sockaddr *sap) in xprt_rdma_format_addresses() argument
187 xprt_rdma_format_addresses4(xprt, sap); in xprt_rdma_format_addresses()
190 xprt_rdma_format_addresses6(xprt, sap); in xprt_rdma_format_addresses()
198 xprt->address_strings[RPC_DISPLAY_ADDR] = kstrdup(buf, GFP_KERNEL); in xprt_rdma_format_addresses()
201 xprt->address_strings[RPC_DISPLAY_PORT] = kstrdup(buf, GFP_KERNEL); in xprt_rdma_format_addresses()
204 xprt->address_strings[RPC_DISPLAY_HEX_PORT] = kstrdup(buf, GFP_KERNEL); in xprt_rdma_format_addresses()
206 xprt->address_strings[RPC_DISPLAY_PROTO] = "rdma"; in xprt_rdma_format_addresses()
210 xprt_rdma_free_addresses(struct rpc_xprt *xprt) in xprt_rdma_free_addresses() argument
220 kfree(xprt->address_strings[i]); in xprt_rdma_free_addresses()
237 struct rpc_xprt *xprt = &r_xprt->rx_xprt; in xprt_rdma_connect_worker() local
241 if (atomic_read(&xprt->swapper)) in xprt_rdma_connect_worker()
244 xprt_clear_connecting(xprt); in xprt_rdma_connect_worker()
246 xprt->connect_cookie++; in xprt_rdma_connect_worker()
247 xprt->stat.connect_count++; in xprt_rdma_connect_worker()
248 xprt->stat.connect_time += (long)jiffies - in xprt_rdma_connect_worker()
249 xprt->stat.connect_start; in xprt_rdma_connect_worker()
250 xprt_set_connected(xprt); in xprt_rdma_connect_worker()
254 xprt_unlock_connect(xprt, r_xprt); in xprt_rdma_connect_worker()
255 xprt_wake_pending_tasks(xprt, rc); in xprt_rdma_connect_worker()
269 xprt_rdma_inject_disconnect(struct rpc_xprt *xprt) in xprt_rdma_inject_disconnect() argument
271 struct rpcrdma_xprt *r_xprt = rpcx_to_rdmax(xprt); in xprt_rdma_inject_disconnect()
285 xprt_rdma_destroy(struct rpc_xprt *xprt) in xprt_rdma_destroy() argument
287 struct rpcrdma_xprt *r_xprt = rpcx_to_rdmax(xprt); in xprt_rdma_destroy()
294 xprt_rdma_free_addresses(xprt); in xprt_rdma_destroy()
295 xprt_free(xprt); in xprt_rdma_destroy()
314 struct rpc_xprt *xprt; in xprt_setup_rdma() local
319 if (args->addrlen > sizeof(xprt->addr)) in xprt_setup_rdma()
325 xprt = xprt_alloc(args->net, sizeof(struct rpcrdma_xprt), 0, in xprt_setup_rdma()
327 if (!xprt) { in xprt_setup_rdma()
332 xprt->timeout = &xprt_rdma_default_timeout; in xprt_setup_rdma()
333 xprt->connect_timeout = xprt->timeout->to_initval; in xprt_setup_rdma()
334 xprt->max_reconnect_timeout = xprt->timeout->to_maxval; in xprt_setup_rdma()
335 xprt->bind_timeout = RPCRDMA_BIND_TO; in xprt_setup_rdma()
336 xprt->reestablish_timeout = RPCRDMA_INIT_REEST_TO; in xprt_setup_rdma()
337 xprt->idle_timeout = RPCRDMA_IDLE_DISC_TO; in xprt_setup_rdma()
339 xprt->resvport = 0; /* privileged port not needed */ in xprt_setup_rdma()
340 xprt->ops = &xprt_rdma_procs; in xprt_setup_rdma()
349 xprt->prot = IPPROTO_TCP; in xprt_setup_rdma()
350 xprt->xprt_class = &xprt_rdma; in xprt_setup_rdma()
351 xprt->addrlen = args->addrlen; in xprt_setup_rdma()
352 memcpy(&xprt->addr, sap, xprt->addrlen); in xprt_setup_rdma()
355 xprt_set_bound(xprt); in xprt_setup_rdma()
356 xprt_rdma_format_addresses(xprt, sap); in xprt_setup_rdma()
358 new_xprt = rpcx_to_rdmax(xprt); in xprt_setup_rdma()
361 xprt_rdma_free_addresses(xprt); in xprt_setup_rdma()
362 xprt_free(xprt); in xprt_setup_rdma()
370 xprt->max_payload = RPCRDMA_MAX_DATA_SEGS << PAGE_SHIFT; in xprt_setup_rdma()
372 return xprt; in xprt_setup_rdma()
384 void xprt_rdma_close(struct rpc_xprt *xprt) in xprt_rdma_close() argument
386 struct rpcrdma_xprt *r_xprt = rpcx_to_rdmax(xprt); in xprt_rdma_close()
390 xprt->reestablish_timeout = 0; in xprt_rdma_close()
391 ++xprt->connect_cookie; in xprt_rdma_close()
392 xprt_disconnect_done(xprt); in xprt_rdma_close()
403 xprt_rdma_set_port(struct rpc_xprt *xprt, u16 port) in xprt_rdma_set_port() argument
405 struct sockaddr *sap = (struct sockaddr *)&xprt->addr; in xprt_rdma_set_port()
410 kfree(xprt->address_strings[RPC_DISPLAY_PORT]); in xprt_rdma_set_port()
412 xprt->address_strings[RPC_DISPLAY_PORT] = kstrdup(buf, GFP_KERNEL); in xprt_rdma_set_port()
414 kfree(xprt->address_strings[RPC_DISPLAY_HEX_PORT]); in xprt_rdma_set_port()
416 xprt->address_strings[RPC_DISPLAY_HEX_PORT] = kstrdup(buf, GFP_KERNEL); in xprt_rdma_set_port()
433 xprt_rdma_timer(struct rpc_xprt *xprt, struct rpc_task *task) in xprt_rdma_timer() argument
435 xprt_force_disconnect(xprt); in xprt_rdma_timer()
445 static void xprt_rdma_set_connect_timeout(struct rpc_xprt *xprt, in xprt_rdma_set_connect_timeout() argument
449 struct rpcrdma_xprt *r_xprt = rpcx_to_rdmax(xprt); in xprt_rdma_set_connect_timeout()
453 spin_lock(&xprt->transport_lock); in xprt_rdma_set_connect_timeout()
455 if (connect_timeout < xprt->connect_timeout) { in xprt_rdma_set_connect_timeout()
459 to = *xprt->timeout; in xprt_rdma_set_connect_timeout()
466 xprt->timeout = &r_xprt->rx_timeout; in xprt_rdma_set_connect_timeout()
467 xprt->connect_timeout = connect_timeout; in xprt_rdma_set_connect_timeout()
470 if (reconnect_timeout < xprt->max_reconnect_timeout) in xprt_rdma_set_connect_timeout()
471 xprt->max_reconnect_timeout = reconnect_timeout; in xprt_rdma_set_connect_timeout()
473 spin_unlock(&xprt->transport_lock); in xprt_rdma_set_connect_timeout()
483 xprt_rdma_connect(struct rpc_xprt *xprt, struct rpc_task *task) in xprt_rdma_connect() argument
485 struct rpcrdma_xprt *r_xprt = rpcx_to_rdmax(xprt); in xprt_rdma_connect()
489 WARN_ON_ONCE(!xprt_lock_connect(xprt, task, r_xprt)); in xprt_rdma_connect()
493 delay = xprt_reconnect_delay(xprt); in xprt_rdma_connect()
494 xprt_reconnect_backoff(xprt, RPCRDMA_INIT_REEST_TO); in xprt_rdma_connect()
510 xprt_rdma_alloc_slot(struct rpc_xprt *xprt, struct rpc_task *task) in xprt_rdma_alloc_slot() argument
512 struct rpcrdma_xprt *r_xprt = rpcx_to_rdmax(xprt); in xprt_rdma_alloc_slot()
524 xprt_add_backlog(xprt, task); in xprt_rdma_alloc_slot()
534 xprt_rdma_free_slot(struct rpc_xprt *xprt, struct rpc_rqst *rqst) in xprt_rdma_free_slot() argument
537 container_of(xprt, struct rpcrdma_xprt, rx_xprt); in xprt_rdma_free_slot()
540 if (!xprt_wake_up_backlog(xprt, rqst)) { in xprt_rdma_free_slot()
633 struct rpc_xprt *xprt = rqst->rq_xprt; in xprt_rdma_send_request() local
635 struct rpcrdma_xprt *r_xprt = rpcx_to_rdmax(xprt); in xprt_rdma_send_request()
643 if (!xprt_connected(xprt)) in xprt_rdma_send_request()
646 if (!xprt_request_get_cong(xprt, rqst)) in xprt_rdma_send_request()
654 if (rqst->rq_connect_cookie == xprt->connect_cookie) in xprt_rdma_send_request()
674 xprt_rdma_close(xprt); in xprt_rdma_send_request()
678 void xprt_rdma_print_stats(struct rpc_xprt *xprt, struct seq_file *seq) in xprt_rdma_print_stats() argument
680 struct rpcrdma_xprt *r_xprt = rpcx_to_rdmax(xprt); in xprt_rdma_print_stats()
683 if (xprt_connected(xprt)) in xprt_rdma_print_stats()
684 idle_time = (long)(jiffies - xprt->last_used) / HZ; in xprt_rdma_print_stats()
689 xprt->stat.bind_count, in xprt_rdma_print_stats()
690 xprt->stat.connect_count, in xprt_rdma_print_stats()
691 xprt->stat.connect_time / HZ, in xprt_rdma_print_stats()
693 xprt->stat.sends, in xprt_rdma_print_stats()
694 xprt->stat.recvs, in xprt_rdma_print_stats()
695 xprt->stat.bad_xids, in xprt_rdma_print_stats()
696 xprt->stat.req_u, in xprt_rdma_print_stats()
697 xprt->stat.bklog_u); in xprt_rdma_print_stats()
720 xprt_rdma_enable_swap(struct rpc_xprt *xprt) in xprt_rdma_enable_swap() argument
726 xprt_rdma_disable_swap(struct rpc_xprt *xprt) in xprt_rdma_disable_swap() argument