[PATCH net-next 0/7] rxrpc: Miscellaneous changes

From: David Howells
Date: Sat May 21 2022 - 03:45:20 EST



Here are some miscellaneous changes for AF_RXRPC:

(1) Allow the list of local endpoints to be viewed through /proc.

(2) Switch to using refcount_t for refcounting.

(3) Fix a locking issue found by lockdep.

(4) Autogenerate tracing symbol enums from symbol->string maps to make it
easier to keep them in sync.

(5) Return an error to sendmsg() if a call it tried to set up failed.
Because it failed at this point, no notification will be generated for
recvmsg to pick up - but userspace still needs to know about the
failure.

(6) Fix the selection of abort codes generated by internal events. In
particular, rxrpc and kafs shouldn't be generating RX_USER_ABORT
unless it's because userspace did something to cancel a call.

(7) Adjust the interpretation and handling of certain ACK types to try and
detect NAT changes causing a call to seem to start mid-flow from a
different peer.

The patches are tagged here:

git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
rxrpc-next-20220521

and can also be found on the following branch:

http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=rxrpc-next

Tested-by: kafs-testing+fedora34_64checkkafs-build-493@xxxxxxxxxxxx

Changes
=======
ver #2)
- Changed an rcu_dereference(->next) to list_head_next().

David

Link: https://lore.kernel.org/r/165306515409.34989.4713077338482294594.stgit@xxxxxxxxxxxxxxxxxxxxxx/ # v1
---
David Howells (7):
rxrpc: Allow list of in-use local UDP endpoints to be viewed in /proc
rxrpc: Use refcount_t rather than atomic_t
rxrpc: Fix locking issue
rxrpc: Automatically generate trace tag enums
rxrpc: Return an error to sendmsg if call failed
rxrpc, afs: Fix selection of abort codes
afs: Adjust ACK interpretation to try and cope with NAT


fs/afs/misc.c | 5 +-
fs/afs/rotate.c | 4 +
fs/afs/rxrpc.c | 8 +-
fs/afs/write.c | 1 +
fs/seq_file.c | 32 +++++
include/linux/list.h | 10 ++
include/linux/seq_file.h | 4 +
include/trace/events/rxrpc.h | 263 ++++++-----------------------------
net/rxrpc/af_rxrpc.c | 2 +-
net/rxrpc/ar-internal.h | 25 ++--
net/rxrpc/call_accept.c | 10 +-
net/rxrpc/call_event.c | 4 +-
net/rxrpc/call_object.c | 62 +++++----
net/rxrpc/conn_client.c | 30 ++--
net/rxrpc/conn_object.c | 51 +++----
net/rxrpc/conn_service.c | 8 +-
net/rxrpc/input.c | 31 ++++-
net/rxrpc/local_object.c | 68 ++++-----
net/rxrpc/net_ns.c | 7 +-
net/rxrpc/peer_object.c | 40 +++---
net/rxrpc/proc.c | 85 +++++++++--
net/rxrpc/sendmsg.c | 6 +
net/rxrpc/skbuff.c | 1 -
23 files changed, 366 insertions(+), 391 deletions(-)