[PATCH net-next 0/8] rxrpc: Overhaul call refcounting
From: David Howells
Date: Wed Sep 07 2016 - 11:22:37 EST
Here's a set of mostly small patches leading up to one big one.
The big patch at the end of the series overhauls how rxrpc_call refcounting
is handled, making it more sane so that calls bound to user IDs are _only_
released from socket operations or kernel API functions. Further, the
patch stops calls from holding refs on their parent socket - which can
prevent the socket from being cleaned up.
The second largest patch improves the call tracking tracepoint by providing
extra information about the situation in which gets and puts occur. This
allows distinctions to be drawn between refs held by the socket user ID
tree, refs held by the work queue (to be implemented by a future patch) and
other refs.
The other patches include a couple of cleanups and some simple alterations
to avoid NULL pointer dereferences in the big patch.
The patches can be found here also (non-terminally on the branch):
http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=rxrpc-rewrite
Tagged thusly:
git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
rxrpc-rewrite-20160907-1
David
---
David Howells (8):
rxrpc: Whitespace cleanup
rxrpc: Delete unused rxrpc_kernel_free_skb()
rxrpc: Improve the call tracking tracepoint
rxrpc: Use call->peer rather than call->conn->params.peer
rxrpc: Cache the security index in the rxrpc_call struct
rxrpc: Pass the connection pointer to rxrpc_post_packet_to_call()
rxrpc: Use rxrpc_is_service_call() rather than rxrpc_conn_is_service()
rxrpc: Calls shouldn't hold socket refs
include/trace/events/rxrpc.h | 11 --
net/rxrpc/af_rxrpc.c | 6 -
net/rxrpc/ar-internal.h | 41 ++++--
net/rxrpc/call_accept.c | 63 +++-------
net/rxrpc/call_event.c | 74 +++++------
net/rxrpc/call_object.c | 277 +++++++++++++++++++-----------------------
net/rxrpc/conn_client.c | 3
net/rxrpc/input.c | 39 +++---
net/rxrpc/output.c | 145 ++++++++++++++++++++++
net/rxrpc/proc.c | 4 -
net/rxrpc/recvmsg.c | 47 ++-----
net/rxrpc/sendmsg.c | 6 -
net/rxrpc/skbuff.c | 16 --
net/rxrpc/sysctl.c | 8 -
14 files changed, 393 insertions(+), 347 deletions(-)