[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