Message ID | 20210202174754.6861-4-fw@strlen.de |
---|---|
State | Accepted, archived |
Commit | 74975e28f8ec1ec7913eb2189d36e4f2bb61b295 |
Delegated to: | Matthieu Baerts |
Headers | show |
Series | mptcp: netlink event fixes | expand |
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 24eb42a60844..9472bb265e32 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2244,9 +2244,6 @@ static void mptcp_worker(struct work_struct *work) mptcp_check_fastclose(msk); - if (test_and_clear_bit(MPTCP_WORK_CLOSE_SUBFLOW, &msk->flags)) - __mptcp_close_subflow(msk); - if (msk->pm.status) mptcp_pm_nl_work(msk); @@ -2268,6 +2265,9 @@ static void mptcp_worker(struct work_struct *work) goto unlock; } + if (test_and_clear_bit(MPTCP_WORK_CLOSE_SUBFLOW, &msk->flags)) + __mptcp_close_subflow(msk); + if (!test_and_clear_bit(MPTCP_WORK_RTX, &msk->flags)) goto unlock;
In case mptcp socket is already dead the entire mptcp socket will be freed. We can avoid the close check in this case. Signed-off-by: Florian Westphal <fw@strlen.de> --- net/mptcp/protocol.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)