diff options
Diffstat (limited to 'net/mptcp/pm.c')
-rw-r--r-- | net/mptcp/pm.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index cdc2d79071f8..59fdab2d0c27 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -181,15 +181,14 @@ void mptcp_pm_subflow_check_next(struct mptcp_sock *msk, const struct sock *ssk, struct mptcp_pm_data *pm = &msk->pm; bool update_subflows; - update_subflows = (ssk->sk_state == TCP_CLOSE) && - (subflow->request_join || subflow->mp_join) && + update_subflows = (subflow->request_join || subflow->mp_join) && mptcp_pm_is_kernel(msk); if (!READ_ONCE(pm->work_pending) && !update_subflows) return; spin_lock_bh(&pm->lock); if (update_subflows) - pm->subflows--; + __mptcp_pm_close_subflow(msk); /* Even if this subflow is not really established, tell the PM to try * to pick the next ones, if possible. |