diff options
| author | Geliang Tang <[email protected]> | 2021-03-13 01:16:16 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2021-03-13 01:47:45 +0000 |
| commit | ddd14bb85dd8d26e10a2ce4f9606879b94e81888 (patch) | |
| tree | 00d288dad7173becb7d1fa54c6a2d0b2d2c1df0e /net/mptcp/pm.c | |
| parent | mptcp: remove multi addresses in PM (diff) | |
| download | kernel-ddd14bb85dd8d26e10a2ce4f9606879b94e81888.tar.gz kernel-ddd14bb85dd8d26e10a2ce4f9606879b94e81888.zip | |
mptcp: remove multi subflows in PM
This patch dealt with removing multi subflows in PM:
In mptcp_pm_remove_subflow, changed the input parameter local_id as an
list of removing address ids, and passed the list to
mptcp_pm_nl_rm_subflow_received.
In mptcp_pm_nl_rm_subflow_received, iterated each address id from the
received ids list. Then shut down and closed each address id's subsocket.
In mptcp_nl_remove_subflow_and_signal_addr, put the single address id into
an ids list, and passed it to mptcp_pm_remove_subflow.
Signed-off-by: Geliang Tang <[email protected]>
Signed-off-by: Mat Martineau <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'net/mptcp/pm.c')
| -rw-r--r-- | net/mptcp/pm.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index a47436205d88..4cfd80f90003 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -56,12 +56,12 @@ int mptcp_pm_remove_addr(struct mptcp_sock *msk, const struct mptcp_rm_list *rm_ return 0; } -int mptcp_pm_remove_subflow(struct mptcp_sock *msk, u8 local_id) +int mptcp_pm_remove_subflow(struct mptcp_sock *msk, const struct mptcp_rm_list *rm_list) { - pr_debug("msk=%p, local_id=%d", msk, local_id); + pr_debug("msk=%p, rm_list_nr=%d", msk, rm_list->nr); spin_lock_bh(&msk->pm.lock); - mptcp_pm_nl_rm_subflow_received(msk, local_id); + mptcp_pm_nl_rm_subflow_received(msk, rm_list); spin_unlock_bh(&msk->pm.lock); return 0; } |
