From: Geliang Tang <tanggeliang@kylinos.cn>
Use the newly added tcp_recv_should_stop() helper in mptcp_recvmsg() to
check whether to stop receiving.
Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
net/mptcp/protocol.c | 35 +++++------------------------------
1 file changed, 5 insertions(+), 30 deletions(-)
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index dda16dbae9fd..5cbe652b6ea0 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -2206,36 +2206,11 @@ static int mptcp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
if (copied >= target)
break;
- if (copied) {
- if (sk->sk_err ||
- sk->sk_state == TCP_CLOSE ||
- (sk->sk_shutdown & RCV_SHUTDOWN) ||
- !timeo ||
- signal_pending(current))
- break;
- } else {
- if (sk->sk_err) {
- copied = sock_error(sk);
- break;
- }
-
- if (sk->sk_shutdown & RCV_SHUTDOWN)
- break;
-
- if (sk->sk_state == TCP_CLOSE) {
- copied = -ENOTCONN;
- break;
- }
-
- if (!timeo) {
- copied = -EAGAIN;
- break;
- }
-
- if (signal_pending(current)) {
- copied = sock_intr_errno(timeo);
- break;
- }
+ err = tcp_recv_should_stop(sk, timeo);
+ if (err < 0) {
+ if (!copied && err != -ESHUTDOWN)
+ copied = err;
+ break;
}
pr_debug("block timeout %ld\n", timeo);
--
2.43.0