mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
Merge branch 'mptcp-misc-fixes-for-v7-1-rc2'
Matthieu Baerts says: ==================== mptcp: misc fixes for v7.1-rc2 Here are various unrelated fixes: - Patches 1-2: set timestamp flags on 'ssk', not 'sk' (typo); Plus do that with sleepable lock_sock/release_sock. A fix for v5.14. - Patch 3: respect SO_LINGER(1, 0) by sending MP_FASTCLOSE at close time as expected. A fix for v6.1. - Patch 4: reset fullmesh counter after a flush. A fix for v6.19. ==================== Link: https://patch.msgid.link/20260427-net-mptcp-misc-fixes-7-1-rc2-v1-0-7432b7f279fa@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
0c7a5ba011
|
|
@ -1278,6 +1278,7 @@ static void __reset_counters(struct pm_nl_pernet *pernet)
|
|||
WRITE_ONCE(pernet->endp_signal_max, 0);
|
||||
WRITE_ONCE(pernet->endp_subflow_max, 0);
|
||||
WRITE_ONCE(pernet->endp_laminar_max, 0);
|
||||
WRITE_ONCE(pernet->endp_fullmesh_max, 0);
|
||||
pernet->endpoints = 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3302,7 +3302,8 @@ bool __mptcp_close(struct sock *sk, long timeout)
|
|||
goto cleanup;
|
||||
}
|
||||
|
||||
if (mptcp_data_avail(msk) || timeout < 0) {
|
||||
if (mptcp_data_avail(msk) || timeout < 0 ||
|
||||
(sock_flag(sk, SOCK_LINGER) && !sk->sk_lingertime)) {
|
||||
/* If the msk has read data, or the caller explicitly ask it,
|
||||
* do the MPTCP equivalent of TCP reset, aka MPTCP fastclose
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -159,10 +159,10 @@ static int mptcp_setsockopt_sol_socket_tstamp(struct mptcp_sock *msk, int optnam
|
|||
lock_sock(sk);
|
||||
mptcp_for_each_subflow(msk, subflow) {
|
||||
struct sock *ssk = mptcp_subflow_tcp_sock(subflow);
|
||||
bool slow = lock_sock_fast(ssk);
|
||||
|
||||
sock_set_timestamp(sk, optname, !!val);
|
||||
unlock_sock_fast(ssk, slow);
|
||||
lock_sock(ssk);
|
||||
sock_set_timestamp(ssk, optname, !!val);
|
||||
release_sock(ssk);
|
||||
}
|
||||
|
||||
release_sock(sk);
|
||||
|
|
@ -235,10 +235,10 @@ static int mptcp_setsockopt_sol_socket_timestamping(struct mptcp_sock *msk,
|
|||
|
||||
mptcp_for_each_subflow(msk, subflow) {
|
||||
struct sock *ssk = mptcp_subflow_tcp_sock(subflow);
|
||||
bool slow = lock_sock_fast(ssk);
|
||||
|
||||
sock_set_timestamping(sk, optname, timestamping);
|
||||
unlock_sock_fast(ssk, slow);
|
||||
lock_sock(ssk);
|
||||
sock_set_timestamping(ssk, optname, timestamping);
|
||||
release_sock(ssk);
|
||||
}
|
||||
|
||||
release_sock(sk);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user