Re: [PATCH export v3 2/4] mptcp: reject joins after fallback in mptcp_is_fully_established

Paolo Abeni <[email protected]>
Newsgroups dev.linux.lists.mptcp
Message-ID <[email protected]>
On 8/12/26 7:46 AM, Chenguang Zhao wrote:
> 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);

Does the above improve actually anything? The test is inherently racy,
as lack the fallback_lock, and AFAICS all critical paths have already
explicit checks under such lock, see i.e.  mptcp_finish_join().

I would prefer avoiding additional conditionals, if not well reasoned.

/P
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.