diff options
Diffstat (limited to 'net/sunrpc/xprtsock.c')
| -rw-r--r-- | net/sunrpc/xprtsock.c | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c index 3d739e5d15d8..9847c30b5001 100644 --- a/net/sunrpc/xprtsock.c +++ b/net/sunrpc/xprtsock.c | |||
| @@ -297,12 +297,11 @@ static void xs_format_common_peer_addresses(struct rpc_xprt *xprt) | |||
| 297 | switch (sap->sa_family) { | 297 | switch (sap->sa_family) { |
| 298 | case AF_INET: | 298 | case AF_INET: |
| 299 | sin = xs_addr_in(xprt); | 299 | sin = xs_addr_in(xprt); |
| 300 | (void)snprintf(buf, sizeof(buf), "%02x%02x%02x%02x", | 300 | snprintf(buf, sizeof(buf), "%08x", ntohl(sin->sin_addr.s_addr)); |
| 301 | NIPQUAD(sin->sin_addr.s_addr)); | ||
| 302 | break; | 301 | break; |
| 303 | case AF_INET6: | 302 | case AF_INET6: |
| 304 | sin6 = xs_addr_in6(xprt); | 303 | sin6 = xs_addr_in6(xprt); |
| 305 | (void)snprintf(buf, sizeof(buf), "%pi6", &sin6->sin6_addr); | 304 | snprintf(buf, sizeof(buf), "%pi6", &sin6->sin6_addr); |
| 306 | break; | 305 | break; |
| 307 | default: | 306 | default: |
| 308 | BUG(); | 307 | BUG(); |
| @@ -315,10 +314,10 @@ static void xs_format_common_peer_ports(struct rpc_xprt *xprt) | |||
| 315 | struct sockaddr *sap = xs_addr(xprt); | 314 | struct sockaddr *sap = xs_addr(xprt); |
| 316 | char buf[128]; | 315 | char buf[128]; |
| 317 | 316 | ||
| 318 | (void)snprintf(buf, sizeof(buf), "%u", rpc_get_port(sap)); | 317 | snprintf(buf, sizeof(buf), "%u", rpc_get_port(sap)); |
| 319 | xprt->address_strings[RPC_DISPLAY_PORT] = kstrdup(buf, GFP_KERNEL); | 318 | xprt->address_strings[RPC_DISPLAY_PORT] = kstrdup(buf, GFP_KERNEL); |
| 320 | 319 | ||
| 321 | (void)snprintf(buf, sizeof(buf), "%4hx", rpc_get_port(sap)); | 320 | snprintf(buf, sizeof(buf), "%4hx", rpc_get_port(sap)); |
| 322 | xprt->address_strings[RPC_DISPLAY_HEX_PORT] = kstrdup(buf, GFP_KERNEL); | 321 | xprt->address_strings[RPC_DISPLAY_HEX_PORT] = kstrdup(buf, GFP_KERNEL); |
| 323 | } | 322 | } |
| 324 | 323 | ||
| @@ -549,8 +548,6 @@ static int xs_udp_send_request(struct rpc_task *task) | |||
| 549 | /* Still some bytes left; set up for a retry later. */ | 548 | /* Still some bytes left; set up for a retry later. */ |
| 550 | status = -EAGAIN; | 549 | status = -EAGAIN; |
| 551 | } | 550 | } |
| 552 | if (!transport->sock) | ||
| 553 | goto out; | ||
| 554 | 551 | ||
| 555 | switch (status) { | 552 | switch (status) { |
| 556 | case -ENOTSOCK: | 553 | case -ENOTSOCK: |
| @@ -570,7 +567,7 @@ static int xs_udp_send_request(struct rpc_task *task) | |||
| 570 | * prompts ECONNREFUSED. */ | 567 | * prompts ECONNREFUSED. */ |
| 571 | clear_bit(SOCK_ASYNC_NOSPACE, &transport->sock->flags); | 568 | clear_bit(SOCK_ASYNC_NOSPACE, &transport->sock->flags); |
| 572 | } | 569 | } |
| 573 | out: | 570 | |
| 574 | return status; | 571 | return status; |
| 575 | } | 572 | } |
| 576 | 573 | ||
| @@ -652,8 +649,6 @@ static int xs_tcp_send_request(struct rpc_task *task) | |||
| 652 | status = -EAGAIN; | 649 | status = -EAGAIN; |
| 653 | break; | 650 | break; |
| 654 | } | 651 | } |
| 655 | if (!transport->sock) | ||
| 656 | goto out; | ||
| 657 | 652 | ||
| 658 | switch (status) { | 653 | switch (status) { |
| 659 | case -ENOTSOCK: | 654 | case -ENOTSOCK: |
| @@ -673,7 +668,7 @@ static int xs_tcp_send_request(struct rpc_task *task) | |||
| 673 | case -ENOTCONN: | 668 | case -ENOTCONN: |
| 674 | clear_bit(SOCK_ASYNC_NOSPACE, &transport->sock->flags); | 669 | clear_bit(SOCK_ASYNC_NOSPACE, &transport->sock->flags); |
| 675 | } | 670 | } |
| 676 | out: | 671 | |
| 677 | return status; | 672 | return status; |
| 678 | } | 673 | } |
| 679 | 674 | ||
| @@ -1912,6 +1907,11 @@ static void xs_tcp_setup_socket(struct rpc_xprt *xprt, | |||
| 1912 | case -EALREADY: | 1907 | case -EALREADY: |
| 1913 | xprt_clear_connecting(xprt); | 1908 | xprt_clear_connecting(xprt); |
| 1914 | return; | 1909 | return; |
| 1910 | case -EINVAL: | ||
| 1911 | /* Happens, for instance, if the user specified a link | ||
| 1912 | * local IPv6 address without a scope-id. | ||
| 1913 | */ | ||
| 1914 | goto out; | ||
| 1915 | } | 1915 | } |
| 1916 | out_eagain: | 1916 | out_eagain: |
| 1917 | status = -EAGAIN; | 1917 | status = -EAGAIN; |
| @@ -2100,7 +2100,7 @@ static void xs_tcp_print_stats(struct rpc_xprt *xprt, struct seq_file *seq) | |||
| 2100 | * we allocate pages instead doing a kmalloc like rpc_malloc is because we want | 2100 | * we allocate pages instead doing a kmalloc like rpc_malloc is because we want |
| 2101 | * to use the server side send routines. | 2101 | * to use the server side send routines. |
| 2102 | */ | 2102 | */ |
| 2103 | void *bc_malloc(struct rpc_task *task, size_t size) | 2103 | static void *bc_malloc(struct rpc_task *task, size_t size) |
| 2104 | { | 2104 | { |
| 2105 | struct page *page; | 2105 | struct page *page; |
| 2106 | struct rpc_buffer *buf; | 2106 | struct rpc_buffer *buf; |
| @@ -2120,7 +2120,7 @@ void *bc_malloc(struct rpc_task *task, size_t size) | |||
| 2120 | /* | 2120 | /* |
| 2121 | * Free the space allocated in the bc_alloc routine | 2121 | * Free the space allocated in the bc_alloc routine |
| 2122 | */ | 2122 | */ |
| 2123 | void bc_free(void *buffer) | 2123 | static void bc_free(void *buffer) |
| 2124 | { | 2124 | { |
| 2125 | struct rpc_buffer *buf; | 2125 | struct rpc_buffer *buf; |
| 2126 | 2126 | ||
| @@ -2251,9 +2251,6 @@ static struct rpc_xprt_ops xs_tcp_ops = { | |||
| 2251 | .buf_free = rpc_free, | 2251 | .buf_free = rpc_free, |
| 2252 | .send_request = xs_tcp_send_request, | 2252 | .send_request = xs_tcp_send_request, |
| 2253 | .set_retrans_timeout = xprt_set_retrans_timeout_def, | 2253 | .set_retrans_timeout = xprt_set_retrans_timeout_def, |
| 2254 | #if defined(CONFIG_NFS_V4_1) | ||
| 2255 | .release_request = bc_release_request, | ||
| 2256 | #endif /* CONFIG_NFS_V4_1 */ | ||
| 2257 | .close = xs_tcp_close, | 2254 | .close = xs_tcp_close, |
| 2258 | .destroy = xs_destroy, | 2255 | .destroy = xs_destroy, |
| 2259 | .print_stats = xs_tcp_print_stats, | 2256 | .print_stats = xs_tcp_print_stats, |
