[PATCH net-next 0/4] afs: Refcount afs_call struct

From: David Howells
Date: Mon Jan 09 2017 - 09:54:21 EST



These patches provide some tracepoints for AFS and fix a potential leak by
adding refcounting to the afs_call struct.

The patches are:

(1) Add some tracepoints for logging incoming calls and monitoring
notifications from AF_RXRPC and data reception.

(2) Get rid of afs_wait_mode as it didn't turn out to be as useful as
initially expected. It can be brought back later if needed. This
clears some stuff out that I don't then need to fix up in (4).

(3) Allow listen(..., 0) to be used to disable listening. This makes
shutting down the AFS cache manager server in the kernel much easier
and the accounting simpler as we can then be sure that (a) all
preallocated afs_call structs are relesed and (b) no new incoming
calls are going to be started.

For the moment, listening cannot be reenabled.

(4) Add refcounting to the afs_call struct to fix a potential multiple
release detected by static checking and add a tracepoint to follow the
lifecycle of afs_call objects.

The patches can be found here also:

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-20170109

David
---
David Howells (4):
afs: Add some tracepoints
afs: Kill afs_wait_mode
rxrpc: Allow listen(sock, 0) to be used to disable listening
afs: Refcount the afs_call struct


fs/afs/callback.c | 2
fs/afs/cmservice.c | 63 ++++++++-----
fs/afs/fsclient.c | 80 ++++++++---------
fs/afs/internal.h | 96 ++++++++------------
fs/afs/main.c | 1
fs/afs/rxrpc.c | 208 +++++++++++++++++++++++---------------------
fs/afs/vlclient.c | 8 +-
fs/afs/vlocation.c | 4 -
fs/afs/vnode.c | 26 +++---
include/trace/events/afs.h | 184 +++++++++++++++++++++++++++++++++++++++
net/rxrpc/af_rxrpc.c | 8 ++
net/rxrpc/ar-internal.h | 1
net/rxrpc/call_accept.c | 3 -
13 files changed, 442 insertions(+), 242 deletions(-)
create mode 100644 include/trace/events/afs.h