[PATCH mptcp-next v2 2/5] mptcp: inherit sk_reuse/sk_reuseport on subflow creation
Geliang Tang <[email protected]> Sun, 26 Jul 2026 16:43:41 +0800
| Newsgroups | dev.linux.lists.mptcp |
|---|---|
| Message-ID | <650252e8ecf53c9d05aa808f95d7fa0fcf812c14.1785054808.git.tanggeliang@kylinos.cn> |
From: Geliang Tang <[email protected]> Propagate sk_reuse and sk_reuseport from the MPTCP master socket to newly-created subflows in sync_socket_options(), mirroring how sk_reuse and sk_reuseport are already handled for the subflow. Without this, a subflow started after the master toggled SO_REUSEADDR or SO_REUSEPORT 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 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c index fcf6feb2a9eb..dc1ef52c2200 100644 --- a/net/mptcp/sockopt.c +++ b/net/mptcp/sockopt.c @@ -1601,6 +1601,9 @@ 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; + ssk->sk_reuseport = sk->sk_reuseport; } void mptcp_sockopt_sync_locked(struct mptcp_sock *msk, struct sock *ssk) -- 2.53.0