rxrpc: Simplify ACK handling
authorDavid Howells <dhowells@redhat.com>
Sun, 16 Oct 2022 07:01:32 +0000 (08:01 +0100)
committerDavid Howells <dhowells@redhat.com>
Tue, 31 Jan 2023 16:38:35 +0000 (16:38 +0000)
commitf21e93485bcbfa2753d1447b6198604a2c3d57be
tree6a50ed8c839f6b87d580aac1ac1f51d417e9c4e5
parent5bbf953382bec6d3b7003e9389668c1d0863db31
rxrpc: Simplify ACK handling

Now that general ACK transmission is done from the same thread as incoming
DATA packet wrangling, there's no possibility that the SACK table will be
being updated by the latter whilst the former is trying to copy it to an
ACK.

This means that we can safely rotate the SACK table whilst updating it
without having to take a lock, rather than keeping all the bits inside it
in fixed place and copying and then rotating it in the transmitter.

Therefore, simplify SACK handing by keeping track of starting point in the
ring and rotate slots down as we consume them.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
include/trace/events/rxrpc.h
net/rxrpc/ar-internal.h
net/rxrpc/input.c
net/rxrpc/output.c