OSDN Git Service

subflow: always init 'rel_write_seq'
authorPaolo Abeni <pabeni@redhat.com>
Thu, 23 Jul 2020 11:02:29 +0000 (13:02 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 23 Jul 2020 18:47:24 +0000 (11:47 -0700)
Currently we do not init the subflow write sequence for
MP_JOIN subflows. This will cause bad mapping being
generated as soon as we will use non backup subflow.

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Tested-by: Christoph Paasch <cpaasch@apple.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/mptcp/protocol.c
net/mptcp/subflow.c

index f0b0b50..59c0eef 100644 (file)
@@ -1814,7 +1814,6 @@ void mptcp_finish_connect(struct sock *ssk)
        ack_seq++;
        subflow->map_seq = ack_seq;
        subflow->map_subflow_seq = 1;
-       subflow->rel_write_seq = 1;
 
        /* the socket is not connected yet, no msk/subflow ops can access/race
         * accessing the field below
index 519122e..84e7080 100644 (file)
@@ -200,6 +200,7 @@ static void subflow_finish_connect(struct sock *sk, const struct sk_buff *skb)
        if (subflow->conn_finished)
                return;
 
+       subflow->rel_write_seq = 1;
        subflow->conn_finished = 1;
        subflow->ssn_offset = TCP_SKB_CB(skb)->seq;
        pr_debug("subflow=%p synack seq=%x", subflow, subflow->ssn_offset);