diff options
| author | Geliang Tang <[email protected]> | 2020-09-24 00:29:55 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2020-09-25 02:58:34 +0000 |
| commit | 0ee4261a36817c441d26ee90ad96f9cc30d678ce (patch) | |
| tree | 460c05bc5cf90cc618f7eb901f971501998eabd5 /net/mptcp/pm.c | |
| parent | mptcp: remove addr and subflow in PM netlink (diff) | |
| download | kernel-0ee4261a36817c441d26ee90ad96f9cc30d678ce.tar.gz kernel-0ee4261a36817c441d26ee90ad96f9cc30d678ce.zip | |
mptcp: implement mptcp_pm_remove_subflow
This patch implemented the local subflow removing function,
mptcp_pm_remove_subflow, it simply called mptcp_pm_nl_rm_subflow_received
under the PM spin lock.
We use mptcp_pm_remove_subflow to remove a local subflow, so change it's
argument from remote_id to local_id.
We check subflow->local_id in mptcp_pm_nl_rm_subflow_received to remove
a subflow.
Suggested-by: Matthieu Baerts <[email protected]>
Suggested-by: Paolo Abeni <[email protected]>
Suggested-by: Mat Martineau <[email protected]>
Signed-off-by: Geliang Tang <[email protected]>
Reviewed-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 | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index f450bf0d49aa..7e81f53d1e5d 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -33,9 +33,14 @@ int mptcp_pm_remove_addr(struct mptcp_sock *msk, u8 local_id) return 0; } -int mptcp_pm_remove_subflow(struct mptcp_sock *msk, u8 remote_id) +int mptcp_pm_remove_subflow(struct mptcp_sock *msk, u8 local_id) { - return -ENOTSUPP; + pr_debug("msk=%p, local_id=%d", msk, local_id); + + spin_lock_bh(&msk->pm.lock); + mptcp_pm_nl_rm_subflow_received(msk, local_id); + spin_unlock_bh(&msk->pm.lock); + return 0; } /* path manager event handlers */ |
