mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-06 05:06:29 +00:00
rxrpc: Track highest acked serial
Keep track of the highest DATA serial number that has been acked by the peer for future purposes. Signed-off-by: David Howells <dhowells@redhat.com> cc: Marc Dionne <marc.dionne@auristor.com> cc: linux-afs@lists.infradead.org
This commit is contained in:
parent
334dfbfc5a
commit
589a0c1e0a
@ -690,6 +690,7 @@ struct rxrpc_call {
|
||||
rxrpc_seq_t acks_lowest_nak; /* Lowest NACK in the buffer (or ==tx_hard_ack) */
|
||||
rxrpc_seq_t acks_lost_top; /* tx_top at the time lost-ack ping sent */
|
||||
rxrpc_serial_t acks_lost_ping; /* Serial number of probe ACK */
|
||||
rxrpc_serial_t acks_highest_serial; /* Highest serial number ACK'd */
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -967,6 +967,10 @@ static void rxrpc_input_ack(struct rxrpc_call *call, struct sk_buff *skb)
|
||||
call->acks_first_seq = first_soft_ack;
|
||||
call->acks_prev_seq = prev_pkt;
|
||||
|
||||
if (buf.ack.reason != RXRPC_ACK_PING &&
|
||||
after(acked_serial, call->acks_highest_serial))
|
||||
call->acks_highest_serial = acked_serial;
|
||||
|
||||
/* Parse rwind and mtu sizes if provided. */
|
||||
if (buf.info.rxMTU)
|
||||
rxrpc_input_ackinfo(call, skb, &buf.info);
|
||||
|
Loading…
Reference in New Issue
Block a user