Skip to content

Commit e0be493

Browse files
Florian Westphaldavem330
authored andcommitted
mptcp: reset last_snd on subflow close
Send logic caches last active subflow in the msk, so it needs to be cleared when the cached subflow is closed. Fixes: d5f4919 ("mptcp: allow picking different xmit subflows") Closes: multipath-tcp/mptcp_net-next#155 Reported-by: Christoph Paasch <cpaasch@apple.com> Acked-by: Paolo Abeni <pabeni@redhat.com> Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent bfc2560 commit e0be493

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

net/mptcp/protocol.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2126,6 +2126,8 @@ static struct sock *mptcp_subflow_get_retrans(const struct mptcp_sock *msk)
21262126
static void __mptcp_close_ssk(struct sock *sk, struct sock *ssk,
21272127
struct mptcp_subflow_context *subflow)
21282128
{
2129+
struct mptcp_sock *msk = mptcp_sk(sk);
2130+
21292131
list_del(&subflow->node);
21302132

21312133
lock_sock_nested(ssk, SINGLE_DEPTH_NESTING);
@@ -2154,6 +2156,9 @@ static void __mptcp_close_ssk(struct sock *sk, struct sock *ssk,
21542156
release_sock(ssk);
21552157

21562158
sock_put(ssk);
2159+
2160+
if (ssk == msk->last_snd)
2161+
msk->last_snd = NULL;
21572162
}
21582163

21592164
void mptcp_close_ssk(struct sock *sk, struct sock *ssk,

0 commit comments

Comments
 (0)