@@ -112,7 +112,7 @@ static void subflow_finish_connect(struct sock *sk, const struct sk_buff *skb)
112112
113113 subflow -> icsk_af_ops -> sk_rx_dst_set (sk , skb );
114114
115- if (subflow -> conn && !subflow -> conn_finished ) {
115+ if (!subflow -> conn_finished ) {
116116 pr_debug ("subflow=%p, remote_key=%llu" , mptcp_subflow_ctx (sk ),
117117 subflow -> remote_key );
118118 mptcp_finish_connect (sk );
@@ -439,9 +439,6 @@ static bool subflow_check_data_avail(struct sock *ssk)
439439 if (subflow -> data_avail )
440440 return true;
441441
442- if (!subflow -> conn )
443- return false;
444-
445442 msk = mptcp_sk (subflow -> conn );
446443 for (;;) {
447444 u32 map_remaining ;
@@ -561,11 +558,10 @@ static void subflow_data_ready(struct sock *sk)
561558 struct mptcp_subflow_context * subflow = mptcp_subflow_ctx (sk );
562559 struct sock * parent = subflow -> conn ;
563560
564- if (!parent || ! subflow -> mp_capable ) {
561+ if (!subflow -> mp_capable ) {
565562 subflow -> tcp_data_ready (sk );
566563
567- if (parent )
568- parent -> sk_data_ready (parent );
564+ parent -> sk_data_ready (parent );
569565 return ;
570566 }
571567
@@ -579,7 +575,7 @@ static void subflow_write_space(struct sock *sk)
579575 struct sock * parent = subflow -> conn ;
580576
581577 sk_stream_write_space (sk );
582- if (parent && sk_stream_is_writeable (sk )) {
578+ if (sk_stream_is_writeable (sk )) {
583579 set_bit (MPTCP_SEND_SPACE , & mptcp_sk (parent )-> flags );
584580 smp_mb__after_atomic ();
585581 /* set SEND_SPACE before sk_stream_write_space clears NOSPACE */
@@ -694,18 +690,18 @@ static bool subflow_is_done(const struct sock *sk)
694690static void subflow_state_change (struct sock * sk )
695691{
696692 struct mptcp_subflow_context * subflow = mptcp_subflow_ctx (sk );
697- struct sock * parent = READ_ONCE ( subflow -> conn ) ;
693+ struct sock * parent = subflow -> conn ;
698694
699695 __subflow_state_change (sk );
700696
701697 /* as recvmsg() does not acquire the subflow socket for ssk selection
702698 * a fin packet carrying a DSS can be unnoticed if we don't trigger
703699 * the data available machinery here.
704700 */
705- if (parent && subflow -> mp_capable && mptcp_subflow_data_available (sk ))
701+ if (subflow -> mp_capable && mptcp_subflow_data_available (sk ))
706702 mptcp_data_ready (parent , sk );
707703
708- if (parent && !(parent -> sk_shutdown & RCV_SHUTDOWN ) &&
704+ if (!(parent -> sk_shutdown & RCV_SHUTDOWN ) &&
709705 !subflow -> rx_eof && subflow_is_done (sk )) {
710706 subflow -> rx_eof = 1 ;
711707 parent -> sk_shutdown |= RCV_SHUTDOWN ;
0 commit comments