aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorMat Martineau <mathew.j.martineau@linux.intel.com>2020-07-28 15:12:07 -0700
committerDavid S. Miller <davem@davemloft.net>2020-07-28 17:02:42 -0700
commit067a0b3dc52f0f79b9fe64ff8d9bcbb0ffbcf8fc (patch)
tree09744dfd1686c371fefb497ae8c65d7f71681c9a /net
parentmptcp: Use full MPTCP-level disconnect state machine (diff)
downloadlinux-dev-067a0b3dc52f0f79b9fe64ff8d9bcbb0ffbcf8fc.tar.xz
linux-dev-067a0b3dc52f0f79b9fe64ff8d9bcbb0ffbcf8fc.zip
mptcp: Only use subflow EOF signaling on fallback connections
The MPTCP state machine handles disconnections on non-fallback connections, but the mptcp_sock still needs to get notified when fallback subflows disconnect. Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/mptcp/subflow.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c
index 7ab2a52ad150..1c8482bc2ce5 100644
--- a/net/mptcp/subflow.c
+++ b/net/mptcp/subflow.c
@@ -1159,7 +1159,8 @@ static void subflow_state_change(struct sock *sk)
if (mptcp_subflow_data_available(sk))
mptcp_data_ready(parent, sk);
- if (!(parent->sk_shutdown & RCV_SHUTDOWN) &&
+ if (__mptcp_check_fallback(mptcp_sk(parent)) &&
+ !(parent->sk_shutdown & RCV_SHUTDOWN) &&
!subflow->rx_eof && subflow_is_done(sk)) {
subflow->rx_eof = 1;
mptcp_subflow_eof(parent);