mptcp: add do_check_data_fin to replace copied
authorGeliang Tang <geliang.tang@suse.com>
Tue, 6 Sep 2022 20:55:41 +0000 (22:55 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 15 Sep 2022 10:01:02 +0000 (12:01 +0200)
This patch adds a new bool variable 'do_check_data_fin' to replace the
original int variable 'copied' in __mptcp_push_pending(), check it to
determine whether to call __mptcp_check_send_data_fin().

Suggested-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
net/mptcp/protocol.c

index fc782d6..47931f6 100644 (file)
@@ -1538,8 +1538,9 @@ void __mptcp_push_pending(struct sock *sk, unsigned int flags)
        struct mptcp_sendmsg_info info = {
                                .flags = flags,
        };
+       bool do_check_data_fin = false;
        struct mptcp_data_frag *dfrag;
-       int len, copied = 0;
+       int len;
 
        while ((dfrag = mptcp_send_head(sk))) {
                info.sent = dfrag->already_sent;
@@ -1574,8 +1575,8 @@ void __mptcp_push_pending(struct sock *sk, unsigned int flags)
                                goto out;
                        }
 
+                       do_check_data_fin = true;
                        info.sent += ret;
-                       copied += ret;
                        len -= ret;
 
                        mptcp_update_post_push(msk, dfrag, ret);
@@ -1591,7 +1592,7 @@ out:
        /* ensure the rtx timer is running */
        if (!mptcp_timer_pending(sk))
                mptcp_reset_timer(sk);
-       if (copied)
+       if (do_check_data_fin)
                __mptcp_check_send_data_fin(sk);
 }