Lines Matching refs:xprt
18 #include <linux/sunrpc/xprt.h>
30 struct rpc_xprt *xprt)
32 if (unlikely(xprt_get(xprt) == NULL))
34 list_add_tail_rcu(&xprt->xprt_switch, &xps->xps_xprt_list);
37 xps->xps_net = xprt->xprt_net;
45 * @xprt: pointer to struct rpc_xprt
47 * Adds xprt to the end of the list of struct rpc_xprt in xps.
50 struct rpc_xprt *xprt)
52 if (xprt == NULL)
55 if (xps->xps_net == xprt->xprt_net || xps->xps_net == NULL)
56 xprt_switch_add_xprt_locked(xps, xprt);
61 struct rpc_xprt *xprt)
63 if (unlikely(xprt == NULL))
70 list_del_rcu(&xprt->xprt_switch);
76 * @xprt: pointer to struct rpc_xprt
78 * Removes xprt from the list of struct rpc_xprt in xps.
81 struct rpc_xprt *xprt)
84 xprt_switch_remove_xprt_locked(xps, xprt);
86 xprt_put(xprt);
91 * @xprt: pointer to struct rpc_xprt
95 * the entry xprt. Returns NULL on failure.
97 struct rpc_xprt_switch *xprt_switch_alloc(struct rpc_xprt *xprt,
111 xprt_switch_add_xprt_locked(xps, xprt);
121 struct rpc_xprt *xprt;
123 xprt = list_first_entry(&xps->xps_xprt_list,
125 xprt_switch_remove_xprt_locked(xps, xprt);
127 xprt_put(xprt);
199 bool xprt_is_active(const struct rpc_xprt *xprt)
201 return kref_read(&xprt->kref) != 0;
269 pr_info("RPC: addr %s already in xprt switch\n",
347 struct rpc_xprt *xprt;
353 xprt = __xprt_switch_find_next_entry_roundrobin(head, cur);
354 if (!xprt)
356 xprt_queuelen = atomic_long_read(&xprt->queuelen);
362 cur = xprt;
364 return xprt;
389 * xprt_iter_rewind - Resets the xprt iterator
413 * xprt_iter_init - Initialise an xprt iterator
428 * xprt_iter_init_listall - Initialise an xprt iterator
461 * xprt_iter_destroy - Destroys the xprt iterator
507 struct rpc_xprt *xprt;
510 xprt = xprt_iter_get_helper(xpi, xprt_iter_ops(xpi)->xpi_xprt);
512 return xprt;
524 struct rpc_xprt *xprt;
527 xprt = xprt_iter_get_helper(xpi, xprt_iter_ops(xpi)->xpi_next);
529 return xprt;