Lines Matching refs:xprt
269 struct rpc_xprt *xprt, in rpc_clnt_set_transport() argument
278 if (!xprt_bound(xprt)) in rpc_clnt_set_transport()
282 rcu_assign_pointer(clnt->cl_xprt, xprt); in rpc_clnt_set_transport()
365 struct rpc_xprt *xprt, in rpc_new_client() argument
412 timeout = xprt->timeout; in rpc_new_client()
419 rpc_clnt_set_transport(clnt, xprt, timeout); in rpc_new_client()
420 xprt->main = true; in rpc_new_client()
441 trace_rpc_clnt_new(clnt, xprt, args); in rpc_new_client()
455 xprt_put(xprt); in rpc_new_client()
461 struct rpc_xprt *xprt) in rpc_create_xprt() argument
471 xps = xprt_switch_alloc(xprt, GFP_KERNEL); in rpc_create_xprt()
473 xprt_put(xprt); in rpc_create_xprt()
476 if (xprt->bc_xprt) { in rpc_create_xprt()
478 xprt->bc_xprt->xpt_bc_xps = xps; in rpc_create_xprt()
481 clnt = rpc_new_client(args, xps, xprt, NULL); in rpc_create_xprt()
530 struct rpc_xprt *xprt; in rpc_create() local
549 xprt = args->bc_xprt->xpt_bc_xprt; in rpc_create()
550 if (xprt) { in rpc_create()
551 xprt_get(xprt); in rpc_create()
552 return rpc_create_xprt(args, xprt); in rpc_create()
598 xprt = xprt_create_transport(&xprtargs); in rpc_create()
599 if (IS_ERR(xprt)) in rpc_create()
600 return (struct rpc_clnt *)xprt; in rpc_create()
608 xprt->resvport = 1; in rpc_create()
610 xprt->resvport = 0; in rpc_create()
611 xprt->reuseport = 0; in rpc_create()
613 xprt->reuseport = 1; in rpc_create()
615 clnt = rpc_create_xprt(args, xprt); in rpc_create()
636 struct rpc_xprt *xprt; in __rpc_clone_client() local
642 xprt = xprt_get(rcu_dereference(clnt->cl_xprt)); in __rpc_clone_client()
645 if (xprt == NULL || xps == NULL) { in __rpc_clone_client()
646 xprt_put(xprt); in __rpc_clone_client()
650 args->servername = xprt->servername; in __rpc_clone_client()
653 new = rpc_new_client(args, xps, xprt, clnt); in __rpc_clone_client()
739 struct rpc_xprt *xprt, *old; in rpc_switch_client_transport() local
744 xprt = xprt_create_transport(args); in rpc_switch_client_transport()
745 if (IS_ERR(xprt)) in rpc_switch_client_transport()
746 return PTR_ERR(xprt); in rpc_switch_client_transport()
748 xps = xprt_switch_alloc(xprt, GFP_KERNEL); in rpc_switch_client_transport()
750 xprt_put(xprt); in rpc_switch_client_transport()
757 old = rpc_clnt_set_transport(clnt, xprt, timeout); in rpc_switch_client_transport()
796 xprt_put(xprt); in rpc_switch_client_transport()
853 struct rpc_xprt *xprt = xprt_iter_get_next(&xpi); in rpc_clnt_iterate_for_each_xprt() local
855 if (!xprt) in rpc_clnt_iterate_for_each_xprt()
857 ret = fn(clnt, xprt, data); in rpc_clnt_iterate_for_each_xprt()
858 xprt_put(xprt); in rpc_clnt_iterate_for_each_xprt()
928 struct rpc_xprt *xprt, void *dummy) in rpc_clnt_disconnect_xprt() argument
930 if (xprt_connected(xprt)) in rpc_clnt_disconnect_xprt()
931 xprt_force_disconnect(xprt); in rpc_clnt_disconnect_xprt()
1078 rpc_task_get_xprt(struct rpc_clnt *clnt, struct rpc_xprt *xprt) in rpc_task_get_xprt() argument
1082 if (!xprt) in rpc_task_get_xprt()
1088 atomic_long_inc(&xprt->queuelen); in rpc_task_get_xprt()
1090 return xprt; in rpc_task_get_xprt()
1094 rpc_task_release_xprt(struct rpc_clnt *clnt, struct rpc_xprt *xprt) in rpc_task_release_xprt() argument
1098 atomic_long_dec(&xprt->queuelen); in rpc_task_release_xprt()
1104 xprt_put(xprt); in rpc_task_release_xprt()
1109 struct rpc_xprt *xprt = task->tk_xprt; in rpc_task_release_transport() local
1111 if (xprt) { in rpc_task_release_transport()
1114 rpc_task_release_xprt(task->tk_client, xprt); in rpc_task_release_transport()
1116 xprt_put(xprt); in rpc_task_release_transport()
1140 struct rpc_xprt *xprt; in rpc_task_get_first_xprt() local
1143 xprt = xprt_get(rcu_dereference(clnt->cl_xprt)); in rpc_task_get_first_xprt()
1145 return rpc_task_get_xprt(clnt, xprt); in rpc_task_get_first_xprt()
1379 struct rpc_xprt *xprt; in rpc_peeraddr() local
1382 xprt = rcu_dereference(clnt->cl_xprt); in rpc_peeraddr()
1384 bytes = xprt->addrlen; in rpc_peeraddr()
1387 memcpy(buf, &xprt->addr, bytes); in rpc_peeraddr()
1406 struct rpc_xprt *xprt; in rpc_peeraddr2str() local
1408 xprt = rcu_dereference(clnt->cl_xprt); in rpc_peeraddr2str()
1410 if (xprt->address_strings[format] != NULL) in rpc_peeraddr2str()
1411 return xprt->address_strings[format]; in rpc_peeraddr2str()
1545 struct rpc_xprt *xprt; in rpc_localaddr() local
1551 xprt = rcu_dereference(clnt->cl_xprt); in rpc_localaddr()
1552 salen = xprt->addrlen; in rpc_localaddr()
1553 memcpy(sap, &xprt->addr, salen); in rpc_localaddr()
1554 net = get_net(xprt->xprt_net); in rpc_localaddr()
1570 struct rpc_xprt *xprt; in rpc_setbufsize() local
1573 xprt = rcu_dereference(clnt->cl_xprt); in rpc_setbufsize()
1574 if (xprt->ops->set_buffer_size) in rpc_setbufsize()
1575 xprt->ops->set_buffer_size(xprt, sndsize, rcvsize); in rpc_setbufsize()
1622 struct rpc_xprt *xprt; in rpc_max_bc_payload() local
1626 xprt = rcu_dereference(clnt->cl_xprt); in rpc_max_bc_payload()
1627 ret = xprt->ops->bc_maxpayload(xprt); in rpc_max_bc_payload()
1635 struct rpc_xprt *xprt; in rpc_num_bc_slots() local
1639 xprt = rcu_dereference(clnt->cl_xprt); in rpc_num_bc_slots()
1640 ret = xprt->ops->bc_num_slots(xprt); in rpc_num_bc_slots()
1869 struct rpc_xprt *xprt = req->rq_xprt; in call_allocate() local
1901 status = xprt->ops->buf_alloc(task); in call_allocate()
2023 struct rpc_xprt *xprt = task->tk_rqstp->rq_xprt; in call_bind() local
2030 if (xprt_bound(xprt)) { in call_bind()
2039 xprt->ops->rpcbind(task); in call_bind()
2048 struct rpc_xprt *xprt = task->tk_rqstp->rq_xprt; in call_bind_status() local
2058 if (xprt_bound(xprt)) { in call_bind_status()
2128 struct rpc_xprt *xprt = task->tk_rqstp->rq_xprt; in call_connect() local
2135 if (xprt_connected(xprt)) { in call_connect()
2158 struct rpc_xprt *xprt = task->tk_rqstp->rq_xprt; in call_connect_status() local
2173 if (xprt_connected(xprt)) { in call_connect_status()
2209 test_bit(XPRT_REMOVE, &xprt->state)) { in call_connect_status()
2220 value = atomic_long_dec_return(&xprt->queuelen); in call_connect_status()
2829 struct rpc_xprt *xprt, struct rpc_cred *cred, int flags, in rpc_call_null_helper() argument
2837 .rpc_xprt = xprt, in rpc_call_null_helper()
2895 struct rpc_xprt *xprt; member
2903 rpc_xprt_switch_add_xprt(data->xps, data->xprt); in rpc_cb_add_xprt_done()
2910 xprt_put(data->xprt); in rpc_cb_add_xprt_release()
2929 struct rpc_xprt_switch *xps, struct rpc_xprt *xprt, in rpc_clnt_test_and_add_xprt() argument
2951 data->xprt = xprt_get(xprt); in rpc_clnt_test_and_add_xprt()
2952 if (rpc_xprt_switch_has_addr(data->xps, (struct sockaddr *)&xprt->addr)) { in rpc_clnt_test_and_add_xprt()
2957 task = rpc_call_null_helper(clnt, xprt, NULL, RPC_TASK_ASYNC, in rpc_clnt_test_and_add_xprt()
2970 struct rpc_xprt *xprt, in rpc_clnt_add_xprt_helper() argument
2977 task = rpc_call_null_helper(clnt, xprt, NULL, 0, NULL, NULL); in rpc_clnt_add_xprt_helper()
2988 data->add_xprt_test(clnt, xprt, data->data); in rpc_clnt_add_xprt_helper()
3013 struct rpc_xprt *xprt, in rpc_clnt_setup_test_and_add_xprt() argument
3018 xprt = xprt_get(xprt); in rpc_clnt_setup_test_and_add_xprt()
3021 if (rpc_xprt_switch_has_addr(xps, (struct sockaddr *)&xprt->addr)) in rpc_clnt_setup_test_and_add_xprt()
3024 status = rpc_clnt_add_xprt_helper(clnt, xprt, data); in rpc_clnt_setup_test_and_add_xprt()
3030 xprt_put(xprt); in rpc_clnt_setup_test_and_add_xprt()
3035 xprt->address_strings[RPC_DISPLAY_ADDR]); in rpc_clnt_setup_test_and_add_xprt()
3063 struct rpc_xprt *xprt; in rpc_clnt_add_xprt() local
3071 xprt = xprt_iter_xprt(&clnt->cl_xpi); in rpc_clnt_add_xprt()
3072 if (xps == NULL || xprt == NULL) { in rpc_clnt_add_xprt()
3077 resvport = xprt->resvport; in rpc_clnt_add_xprt()
3078 reuseport = xprt->reuseport; in rpc_clnt_add_xprt()
3079 connect_timeout = xprt->connect_timeout; in rpc_clnt_add_xprt()
3080 reconnect_timeout = xprt->max_reconnect_timeout; in rpc_clnt_add_xprt()
3081 ident = xprt->xprt_class->ident; in rpc_clnt_add_xprt()
3087 xprt = xprt_create_transport(xprtargs); in rpc_clnt_add_xprt()
3088 if (IS_ERR(xprt)) { in rpc_clnt_add_xprt()
3089 ret = PTR_ERR(xprt); in rpc_clnt_add_xprt()
3092 xprt->resvport = resvport; in rpc_clnt_add_xprt()
3093 xprt->reuseport = reuseport; in rpc_clnt_add_xprt()
3099 if (xprt->ops->set_connect_timeout != NULL) in rpc_clnt_add_xprt()
3100 xprt->ops->set_connect_timeout(xprt, in rpc_clnt_add_xprt()
3106 ret = setup(clnt, xps, xprt, data); in rpc_clnt_add_xprt()
3110 rpc_xprt_switch_add_xprt(xps, xprt); in rpc_clnt_add_xprt()
3112 xprt_put(xprt); in rpc_clnt_add_xprt()
3120 struct rpc_xprt *xprt, in rpc_xprt_probe_trunked() argument
3127 xprt_get(xprt); in rpc_xprt_probe_trunked()
3132 status = rpc_cmp_addr_port((struct sockaddr *)&xprt->addr, in rpc_xprt_probe_trunked()
3136 if (status || !test_bit(XPRT_OFFLINE, &xprt->state)) in rpc_xprt_probe_trunked()
3139 status = rpc_clnt_add_xprt_helper(clnt, xprt, data); in rpc_xprt_probe_trunked()
3141 xprt_put(xprt); in rpc_xprt_probe_trunked()
3163 struct rpc_xprt *xprt = xprt_iter_get_next(&xpi); in rpc_clnt_probe_trunked_xprts() local
3165 if (!xprt) in rpc_clnt_probe_trunked_xprts()
3167 ret = rpc_xprt_probe_trunked(clnt, xprt, data); in rpc_clnt_probe_trunked_xprts()
3168 xprt_put(xprt); in rpc_clnt_probe_trunked_xprts()
3178 struct rpc_xprt *xprt, in rpc_xprt_offline() argument
3185 xprt_get(xprt); in rpc_xprt_offline()
3190 err = rpc_cmp_addr_port((struct sockaddr *)&xprt->addr, in rpc_xprt_offline()
3197 if (wait_on_bit_lock(&xprt->state, XPRT_LOCKED, TASK_KILLABLE)) { in rpc_xprt_offline()
3201 xprt_set_offline_locked(xprt, xps); in rpc_xprt_offline()
3203 xprt_release_write(xprt, NULL); in rpc_xprt_offline()
3205 xprt_put(xprt); in rpc_xprt_offline()
3230 struct rpc_xprt *xprt, in rpc_xprt_set_connect_timeout() argument
3235 if (xprt->ops->set_connect_timeout) in rpc_xprt_set_connect_timeout()
3236 xprt->ops->set_connect_timeout(xprt, in rpc_xprt_set_connect_timeout()
3265 void rpc_clnt_xprt_set_online(struct rpc_clnt *clnt, struct rpc_xprt *xprt) in rpc_clnt_xprt_set_online() argument
3272 xprt_set_online_locked(xprt, xps); in rpc_clnt_xprt_set_online()
3275 void rpc_clnt_xprt_switch_add_xprt(struct rpc_clnt *clnt, struct rpc_xprt *xprt) in rpc_clnt_xprt_switch_add_xprt() argument
3278 (const struct sockaddr *)&xprt->addr)) { in rpc_clnt_xprt_switch_add_xprt()
3279 return rpc_clnt_xprt_set_online(clnt, xprt); in rpc_clnt_xprt_switch_add_xprt()
3283 xprt); in rpc_clnt_xprt_switch_add_xprt()
3288 void rpc_clnt_xprt_switch_remove_xprt(struct rpc_clnt *clnt, struct rpc_xprt *xprt) in rpc_clnt_xprt_switch_remove_xprt() argument
3295 xprt, 0); in rpc_clnt_xprt_switch_remove_xprt()
3363 struct rpc_xprt *xprt, in rpc_clnt_swap_activate_callback() argument
3366 return xprt_enable_swap(xprt); in rpc_clnt_swap_activate_callback()
3383 struct rpc_xprt *xprt, in rpc_clnt_swap_deactivate_callback() argument
3386 xprt_disable_swap(xprt); in rpc_clnt_swap_deactivate_callback()