tcp: remove redundant SOCK_DONE checks
authorEric Dumazet <edumazet@google.com>
Sun, 8 Jul 2018 06:15:56 +0000 (23:15 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 8 Jul 2018 08:14:58 +0000 (17:14 +0900)
In both tcp_splice_read() and tcp_recvmsg(), we already test
sock_flag(sk, SOCK_DONE) right before evaluating sk->sk_state,
so "!sock_flag(sk, SOCK_DONE)" is always true.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp.c

index 850dc8f15afc4be53f550752b412f842f723a1af..c4082cd50257d2478e547bbe6538975acd1ac92d 100644 (file)
@@ -817,8 +817,7 @@ ssize_t tcp_splice_read(struct socket *sock, loff_t *ppos,
                                 * This occurs when user tries to read
                                 * from never connected socket.
                                 */
-                               if (!sock_flag(sk, SOCK_DONE))
-                                       ret = -ENOTCONN;
+                               ret = -ENOTCONN;
                                break;
                        }
                        if (!timeo) {
@@ -2042,13 +2041,10 @@ int tcp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, int nonblock,
                                break;
 
                        if (sk->sk_state == TCP_CLOSE) {
-                               if (!sock_flag(sk, SOCK_DONE)) {
-                                       /* This occurs when user tries to read
-                                        * from never connected socket.
-                                        */
-                                       copied = -ENOTCONN;
-                                       break;
-                               }
+                               /* This occurs when user tries to read
+                                * from never connected socket.
+                                */
+                               copied = -ENOTCONN;
                                break;
                        }