1891 .destroy = xs_destroy,
1892 .print_stats = xs_udp_print_stats,
1893};
1894
1895static struct rpc_xprt_ops xs_tcp_ops = {
1896 .reserve_xprt = xprt_reserve_xprt,
1897 .release_xprt = xs_tcp_release_xprt,
1898 .rpcbind = rpcb_getport_async,
1899 .set_port = xs_set_port,
1900 .connect = xs_tcp_connect,
1901 .buf_alloc = rpc_malloc,
1902 .buf_free = rpc_free,
1903 .send_request = xs_tcp_send_request,
1904 .set_retrans_timeout = xprt_set_retrans_timeout_def,
1905 .close = xs_tcp_shutdown,
1906 .destroy = xs_destroy,
1907 .print_stats = xs_tcp_print_stats,
1908};
1909
1910static struct rpc_xprt *xs_setup_xprt(struct xprt_create *args,
1911 unsigned int slot_table_size)
1912{
1913 struct rpc_xprt *xprt;
1914 struct sock_xprt *new;
1915
1916 if (args->addrlen > sizeof(xprt->addr)) {
1917 dprintk("RPC: xs_setup_xprt: address too large\n");
1918 return ERR_PTR(-EBADF);
1919 }
1920
1921 new = kzalloc(sizeof(*new), GFP_KERNEL);
1922 if (new == NULL) {
1923 dprintk("RPC: xs_setup_xprt: couldn't allocate "
1924 "rpc_xprt\n");
1925 return ERR_PTR(-ENOMEM);
1926 }
1927 xprt = &new->xprt;
1928
1929 xprt->max_reqs = slot_table_size;
1930 xprt->slot = kcalloc(xprt->max_reqs, sizeof(struct rpc_rqst), GFP_KERNEL);
1931 if (xprt->slot == NULL) {