Commit 774c8a8d authored by Geliang Tang's avatar Geliang Tang Committed by David S. Miller
Browse files

mptcp: remove all subflows involving id 0 address



There's only one subflow involving the non-zero id address, but there
may be multi subflows involving the id 0 address.

Here's an example:

 local_id=0, remote_id=0
 local_id=1, remote_id=0
 local_id=0, remote_id=1

If the removing address id is 0, all the subflows involving the id 0
address need to be removed.

In mptcp_pm_nl_rm_addr_received/mptcp_pm_nl_rm_subflow_received, the
"break" prevents the iteration to the next subflow, so this patch
dropped them.

Reviewed-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: default avatarGeliang Tang <geliangtang@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b8128656
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -621,8 +621,6 @@ static void mptcp_pm_nl_rm_addr_received(struct mptcp_sock *msk)
			WRITE_ONCE(msk->pm.accept_addr, true);

			__MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_RMADDR);

			break;
		}
	}
}
@@ -695,8 +693,6 @@ void mptcp_pm_nl_rm_subflow_received(struct mptcp_sock *msk,
			msk->pm.subflows--;

			__MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_RMSUBFLOW);

			break;
		}
	}
}