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 <eduma...@google.com>
---
 net/ipv4/tcp.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 
850dc8f15afc4be53f550752b412f842f723a1af..c4082cd50257d2478e547bbe6538975acd1ac92d
 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -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;
                        }
 
-- 
2.18.0.203.gfac676dfb9-goog

Reply via email to