[PATCH export v3 2/4] mptcp: reject joins after fallback in mptcp_is_fully_established
Chenguang Zhao <[email protected]>
| Newsgroups | dev.linux.lists.mptcp |
|---|---|
| Message-ID | <[email protected]> |
From: Chenguang Zhao <[email protected]> After fallback, treat the connection as not fully established so later MP_JOIN attempts are rejected. Signed-off-by: Chenguang Zhao <[email protected]> --- net/mptcp/protocol.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 7e168e450fb0..bf2483a7ed92 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -957,8 +957,11 @@ static inline void mptcp_start_tout_timer(struct sock *sk) static inline bool mptcp_is_fully_established(struct sock *sk) { + struct mptcp_sock *msk = mptcp_sk(sk); + return inet_sk_state_load(sk) == TCP_ESTABLISHED && - READ_ONCE(mptcp_sk(sk)->fully_established); + READ_ONCE(msk->fully_established) && + !test_bit(MPTCP_FALLBACK_DONE, &msk->flags); } static inline u64 mptcp_stamp(void) -- 2.25.1