SUNRPC: Only save the TCP source port after the connection is complete
Since the RPC client uses a non-blocking connect(), we do not expect to see it return '0' under normal circumstances. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
parent
89f42494f9
commit
3b21f757c3
|
@ -58,6 +58,7 @@
|
||||||
#include "sunrpc.h"
|
#include "sunrpc.h"
|
||||||
|
|
||||||
static void xs_close(struct rpc_xprt *xprt);
|
static void xs_close(struct rpc_xprt *xprt);
|
||||||
|
static void xs_set_srcport(struct sock_xprt *transport, struct socket *sock);
|
||||||
static void xs_tcp_set_socket_timeouts(struct rpc_xprt *xprt,
|
static void xs_tcp_set_socket_timeouts(struct rpc_xprt *xprt,
|
||||||
struct socket *sock);
|
struct socket *sock);
|
||||||
|
|
||||||
|
@ -1025,6 +1026,8 @@ static int xs_tcp_send_request(struct rpc_rqst *req)
|
||||||
if (test_bit(XPRT_SOCK_UPD_TIMEOUT, &transport->sock_state))
|
if (test_bit(XPRT_SOCK_UPD_TIMEOUT, &transport->sock_state))
|
||||||
xs_tcp_set_socket_timeouts(xprt, transport->sock);
|
xs_tcp_set_socket_timeouts(xprt, transport->sock);
|
||||||
|
|
||||||
|
xs_set_srcport(transport, transport->sock);
|
||||||
|
|
||||||
/* Continue transmitting the packet/record. We must be careful
|
/* Continue transmitting the packet/record. We must be careful
|
||||||
* to cope with writespace callbacks arriving _after_ we have
|
* to cope with writespace callbacks arriving _after_ we have
|
||||||
* called sendmsg(). */
|
* called sendmsg(). */
|
||||||
|
@ -2263,8 +2266,6 @@ static void xs_tcp_setup_socket(struct work_struct *work)
|
||||||
sock->sk->sk_state);
|
sock->sk->sk_state);
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case 0:
|
case 0:
|
||||||
xs_set_srcport(transport, sock);
|
|
||||||
fallthrough;
|
|
||||||
case -EINPROGRESS:
|
case -EINPROGRESS:
|
||||||
/* SYN_SENT! */
|
/* SYN_SENT! */
|
||||||
set_bit(XPRT_SOCK_CONNECT_SENT, &transport->sock_state);
|
set_bit(XPRT_SOCK_CONNECT_SENT, &transport->sock_state);
|
||||||
|
|
Loading…
Reference in New Issue