From: Paolo Abeni <[email protected]>

Such function is called only by __mptcp_data_ready(), which in turn
is always invoked when msk is not owned by the user: we can drop the
redundant, related check.

Additionally mptcp needs to propagate the socket error only for
current subflow.

Reviewed-by: Geliang Tang <[email protected]>
Tested-by: Geliang Tang <[email protected]>
Reviewed-by: Matthieu Baerts (NGI0) <[email protected]>
Signed-off-by: Paolo Abeni <[email protected]>
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
---
 net/mptcp/protocol.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 
da21f1807729acdb7d9427a399af66286ed125e2..0292162a14eedffde166cc2a2d4eaa7c3aa6760d
 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -814,12 +814,8 @@ static bool move_skbs_to_msk(struct mptcp_sock *msk, 
struct sock *ssk)
 
        moved = __mptcp_move_skbs_from_subflow(msk, ssk);
        __mptcp_ofo_queue(msk);
-       if (unlikely(ssk->sk_err)) {
-               if (!sock_owned_by_user(sk))
-                       __mptcp_error_report(sk);
-               else
-                       __set_bit(MPTCP_ERROR_REPORT,  &msk->cb_flags);
-       }
+       if (unlikely(ssk->sk_err))
+               __mptcp_subflow_error_report(sk, ssk);
 
        /* If the moves have caught up with the DATA_FIN sequence number
         * it's time to ack the DATA_FIN and change socket state, but

-- 
2.51.0


Reply via email to