[PATCH mptcp-next 3/6] mptcp: inherit sk_reuse on subflow creation

Geliang Tang <[email protected]> Sat, 25 Jul 2026 21:13:40 +0800
Newsgroups dev.linux.lists.mptcp
Message-ID <de70ce4930f7757820cddf40e87cc9dbc4d514ef.1784985085.git.tanggeliang@kylinos.cn>
From: Geliang Tang <[email protected]>

Propagate sk_reuse from the MPTCP master socket to newly-created
subflows in sync_socket_options(), mirroring how sk_reuseport and
sk_reuse are already handled for the subflow.

Without this, a subflow started after the master toggled SO_REUSEADDR
would not inherit the setting, leading to inconsistent reuse
semantics between msk and ssk.

Signed-off-by: Geliang Tang <[email protected]>
---
 net/mptcp/sockopt.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c
index 1b2487a5ae2f..594ce3b4b707 100644
--- a/net/mptcp/sockopt.c
+++ b/net/mptcp/sockopt.c
@@ -1603,6 +1603,8 @@ static void sync_socket_options(struct mptcp_sock *msk, struct sock *ssk)
 	inet_assign_bit(FREEBIND, ssk, inet_test_bit(FREEBIND, sk));
 	inet_assign_bit(BIND_ADDRESS_NO_PORT, ssk, inet_test_bit(BIND_ADDRESS_NO_PORT, sk));
 	WRITE_ONCE(inet_sk(ssk)->local_port_range, READ_ONCE(inet_sk(sk)->local_port_range));
+
+	ssk->sk_reuse = sk->sk_reuse;
 }
 
 void mptcp_sockopt_sync_locked(struct mptcp_sock *msk, struct sock *ssk)
-- 
2.53.0