Commit 8bd172b7 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

tcp: check local var (timeo) before socket fields in one test



Testing timeo before sk_err/sk_state/sk_shutdown makes more sense.

Modern applications use non-blocking IO, while a socket is terminated
only once during its life time.

Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f35f8219
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2399,10 +2399,10 @@ static int tcp_recvmsg_locked(struct sock *sk, struct msghdr *msg, size_t len,
			break;

		if (copied) {
			if (sk->sk_err ||
			if (!timeo ||
			    sk->sk_err ||
			    sk->sk_state == TCP_CLOSE ||
			    (sk->sk_shutdown & RCV_SHUTDOWN) ||
			    !timeo ||
			    signal_pending(current))
				break;
		} else {