tipc: change lock_sock order in connect()
Instead of reaquiring the socket lock and taking the normal exit path when a connection times out, we bail out early with a return -ETIMEDOUT. Reviewed-by: Jon Maloy <jon.maloy@ericsson.com> Reviewed-by: Erik Hugne <erik.hugne@ericsson.com> Signed-off-by: Wang Weidong <wangweidong1@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
776a74ce07
commit
d3fbccf2b0
@ -1507,14 +1507,12 @@ static int connect(struct socket *sock, struct sockaddr *dest, int destlen,
|
||||
sock->state != SS_CONNECTING,
|
||||
timeout ? (long)msecs_to_jiffies(timeout)
|
||||
: MAX_SCHEDULE_TIMEOUT);
|
||||
lock_sock(sk);
|
||||
if (res <= 0) {
|
||||
if (res == 0)
|
||||
res = -ETIMEDOUT;
|
||||
else
|
||||
; /* leave "res" unchanged */
|
||||
goto exit;
|
||||
return res;
|
||||
}
|
||||
lock_sock(sk);
|
||||
}
|
||||
|
||||
if (unlikely(sock->state == SS_DISCONNECTING))
|
||||
|
Loading…
Reference in New Issue
Block a user