Lines Matching refs:xprt

269 		struct rpc_xprt *xprt,
278 if (!xprt_bound(xprt))
282 rcu_assign_pointer(clnt->cl_xprt, xprt);
365 struct rpc_xprt *xprt,
412 timeout = xprt->timeout;
419 rpc_clnt_set_transport(clnt, xprt, timeout);
420 xprt->main = true;
441 trace_rpc_clnt_new(clnt, xprt, args);
455 xprt_put(xprt);
461 struct rpc_xprt *xprt)
471 xps = xprt_switch_alloc(xprt, GFP_KERNEL);
473 xprt_put(xprt);
476 if (xprt->bc_xprt) {
478 xprt->bc_xprt->xpt_bc_xps = xps;
481 clnt = rpc_new_client(args, xps, xprt, NULL);
530 struct rpc_xprt *xprt;
549 xprt = args->bc_xprt->xpt_bc_xprt;
550 if (xprt) {
551 xprt_get(xprt);
552 return rpc_create_xprt(args, xprt);
598 xprt = xprt_create_transport(&xprtargs);
599 if (IS_ERR(xprt))
600 return (struct rpc_clnt *)xprt;
608 xprt->resvport = 1;
610 xprt->resvport = 0;
611 xprt->reuseport = 0;
613 xprt->reuseport = 1;
615 clnt = rpc_create_xprt(args, xprt);
636 struct rpc_xprt *xprt;
642 xprt = xprt_get(rcu_dereference(clnt->cl_xprt));
645 if (xprt == NULL || xps == NULL) {
646 xprt_put(xprt);
650 args->servername = xprt->servername;
653 new = rpc_new_client(args, xps, xprt, clnt);
726 * Returns zero if "clnt" is now using the new xprt. Otherwise a
728 * xprt.
737 struct rpc_xprt *xprt, *old;
742 xprt = xprt_create_transport(args);
743 if (IS_ERR(xprt))
744 return PTR_ERR(xprt);
746 xps = xprt_switch_alloc(xprt, GFP_KERNEL);
748 xprt_put(xprt);
755 old = rpc_clnt_set_transport(clnt, xprt, timeout);
766 * children, if it has any, still point to the old xprt.
794 xprt_put(xprt);
836 * client and applies the function fn(clnt, xprt, data).
851 struct rpc_xprt *xprt = xprt_iter_get_next(&xpi);
853 if (!xprt)
855 ret = fn(clnt, xprt, data);
856 xprt_put(xprt);
926 struct rpc_xprt *xprt, void *dummy)
928 if (xprt_connected(xprt))
929 xprt_force_disconnect(xprt);
1074 rpc_task_get_xprt(struct rpc_clnt *clnt, struct rpc_xprt *xprt)
1078 if (!xprt)
1084 atomic_long_inc(&xprt->queuelen);
1086 return xprt;
1090 rpc_task_release_xprt(struct rpc_clnt *clnt, struct rpc_xprt *xprt)
1094 atomic_long_dec(&xprt->queuelen);
1100 xprt_put(xprt);
1105 struct rpc_xprt *xprt = task->tk_xprt;
1107 if (xprt) {
1110 rpc_task_release_xprt(task->tk_client, xprt);
1112 xprt_put(xprt);
1136 struct rpc_xprt *xprt;
1139 xprt = xprt_get(rcu_dereference(clnt->cl_xprt));
1141 return rpc_task_get_xprt(clnt, xprt);
1365 * rpc_peeraddr - extract remote peer address from clnt's xprt
1375 struct rpc_xprt *xprt;
1378 xprt = rcu_dereference(clnt->cl_xprt);
1380 bytes = xprt->addrlen;
1383 memcpy(buf, &xprt->addr, bytes);
1402 struct rpc_xprt *xprt;
1404 xprt = rcu_dereference(clnt->cl_xprt);
1406 if (xprt->address_strings[format] != NULL)
1407 return xprt->address_strings[format];
1541 struct rpc_xprt *xprt;
1547 xprt = rcu_dereference(clnt->cl_xprt);
1548 salen = xprt->addrlen;
1549 memcpy(sap, &xprt->addr, salen);
1550 net = get_net(xprt->xprt_net);
1566 struct rpc_xprt *xprt;
1569 xprt = rcu_dereference(clnt->cl_xprt);
1570 if (xprt->ops->set_buffer_size)
1571 xprt->ops->set_buffer_size(xprt, sndsize, rcvsize);
1618 struct rpc_xprt *xprt;
1622 xprt = rcu_dereference(clnt->cl_xprt);
1623 ret = xprt->ops->bc_maxpayload(xprt);
1631 struct rpc_xprt *xprt;
1635 xprt = rcu_dereference(clnt->cl_xprt);
1636 ret = xprt->ops->bc_num_slots(xprt);
1865 struct rpc_xprt *xprt = req->rq_xprt;
1897 status = xprt->ops->buf_alloc(task);
2019 struct rpc_xprt *xprt = task->tk_rqstp->rq_xprt;
2026 if (xprt_bound(xprt)) {
2035 xprt->ops->rpcbind(task);
2044 struct rpc_xprt *xprt = task->tk_rqstp->rq_xprt;
2054 if (xprt_bound(xprt)) {
2124 struct rpc_xprt *xprt = task->tk_rqstp->rq_xprt;
2131 if (xprt_connected(xprt)) {
2154 struct rpc_xprt *xprt = task->tk_rqstp->rq_xprt;
2169 if (xprt_connected(xprt)) {
2205 test_bit(XPRT_REMOVE, &xprt->state)) {
2216 value = atomic_long_dec_return(&xprt->queuelen);
2824 struct rpc_xprt *xprt, struct rpc_cred *cred, int flags,
2832 .rpc_xprt = xprt,
2890 struct rpc_xprt *xprt;
2898 rpc_xprt_switch_add_xprt(data->xps, data->xprt);
2905 xprt_put(data->xprt);
2920 * @xprt: pointer struct rpc_xprt
2921 * @in_max_connect: pointer to the max_connect value for the passed in xprt transport
2924 struct rpc_xprt_switch *xps, struct rpc_xprt *xprt,
2946 data->xprt = xprt_get(xprt);
2947 if (rpc_xprt_switch_has_addr(data->xps, (struct sockaddr *)&xprt->addr)) {
2952 task = rpc_call_null_helper(clnt, xprt, NULL, RPC_TASK_ASYNC,
2965 struct rpc_xprt *xprt,
2972 task = rpc_call_null_helper(clnt, xprt, NULL, 0, NULL, NULL);
2983 data->add_xprt_test(clnt, xprt, data->data);
2998 * transport to the rpc_clnt xprt switch
3002 * @xprt: the rpc_xprt to test
3008 struct rpc_xprt *xprt,
3013 xprt = xprt_get(xprt);
3016 if (rpc_xprt_switch_has_addr(xps, (struct sockaddr *)&xprt->addr))
3019 status = rpc_clnt_add_xprt_helper(clnt, xprt, data);
3025 xprt_put(xprt);
3030 xprt->address_strings[RPC_DISPLAY_ADDR]);
3058 struct rpc_xprt *xprt;
3066 xprt = xprt_iter_xprt(&clnt->cl_xpi);
3067 if (xps == NULL || xprt == NULL) {
3072 resvport = xprt->resvport;
3073 reuseport = xprt->reuseport;
3074 connect_timeout = xprt->connect_timeout;
3075 reconnect_timeout = xprt->max_reconnect_timeout;
3076 ident = xprt->xprt_class->ident;
3082 xprt = xprt_create_transport(xprtargs);
3083 if (IS_ERR(xprt)) {
3084 ret = PTR_ERR(xprt);
3087 xprt->resvport = resvport;
3088 xprt->reuseport = reuseport;
3094 if (xprt->ops->set_connect_timeout != NULL)
3095 xprt->ops->set_connect_timeout(xprt,
3101 ret = setup(clnt, xps, xprt, data);
3105 rpc_xprt_switch_add_xprt(xps, xprt);
3107 xprt_put(xprt);
3115 struct rpc_xprt *xprt,
3122 xprt_get(xprt);
3127 status = rpc_cmp_addr_port((struct sockaddr *)&xprt->addr,
3131 if (status || !test_bit(XPRT_OFFLINE, &xprt->state))
3134 status = rpc_clnt_add_xprt_helper(clnt, xprt, data);
3136 xprt_put(xprt);
3158 struct rpc_xprt *xprt = xprt_iter_get_next(&xpi);
3160 if (!xprt)
3162 ret = rpc_xprt_probe_trunked(clnt, xprt, data);
3163 xprt_put(xprt);
3173 struct rpc_xprt *xprt,
3180 xprt_get(xprt);
3185 err = rpc_cmp_addr_port((struct sockaddr *)&xprt->addr,
3192 if (wait_on_bit_lock(&xprt->state, XPRT_LOCKED, TASK_KILLABLE)) {
3196 xprt_set_offline_locked(xprt, xps);
3198 xprt_release_write(xprt, NULL);
3200 xprt_put(xprt);
3225 struct rpc_xprt *xprt,
3230 if (xprt->ops->set_connect_timeout)
3231 xprt->ops->set_connect_timeout(xprt,
3260 void rpc_clnt_xprt_set_online(struct rpc_clnt *clnt, struct rpc_xprt *xprt)
3267 xprt_set_online_locked(xprt, xps);
3270 void rpc_clnt_xprt_switch_add_xprt(struct rpc_clnt *clnt, struct rpc_xprt *xprt)
3273 (const struct sockaddr *)&xprt->addr)) {
3274 return rpc_clnt_xprt_set_online(clnt, xprt);
3278 xprt);
3283 void rpc_clnt_xprt_switch_remove_xprt(struct rpc_clnt *clnt, struct rpc_xprt *xprt)
3290 xprt, 0);
3358 struct rpc_xprt *xprt,
3361 return xprt_enable_swap(xprt);
3378 struct rpc_xprt *xprt,
3381 xprt_disable_swap(xprt);