tipc: fix bug in link protocol message create function
authorJon Paul Maloy <jon.maloy@ericsson.com>
Tue, 26 May 2015 09:40:19 +0000 (05:40 -0400)
committerDavid S. Miller <davem@davemloft.net>
Tue, 26 May 2015 23:43:03 +0000 (19:43 -0400)
In commit dd3f9e70f59f43a5712eba9cf3ee4f1e6999540c
("tipc: add packet sequence number at instant of transmission") we
made a change with the consequence that packets in the link backlog
queue don't contain valid sequence numbers.

However, when we create a link protocol message, we still use the
sequence number of the first packet in the backlog, if there is any,
as "next_sent" indicator in the message. This may entail unnecessary
retransissions or stale packet transmission when there is very low
traffic on the link.

This commit fixes this issue by only using the current value of
tipc_link::snd_nxt as indicator.

Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tipc/link.c

index fb2a003c8e6d062bbf845cf3d88c3d4202c5a438..ca8b8e0f49b526ebbf7a87e2cc89491ecfedf988 100644 (file)
@@ -1320,8 +1320,6 @@ void tipc_link_proto_xmit(struct tipc_link *l_ptr, u32 msg_typ, int probe_msg,
 
                if (!tipc_link_is_up(l_ptr))
                        return;
-               if (skb_queue_len(&l_ptr->backlogq))
-                       next_sent = buf_seqno(skb_peek(&l_ptr->backlogq));
                msg_set_next_sent(msg, next_sent);
                if (!skb_queue_empty(&l_ptr->deferdq)) {
                        last_rcv = buf_seqno(skb_peek(&l_ptr->deferdq));