summaryrefslogtreecommitdiff
path: root/net/rxrpc/call_accept.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2016-09-07 13:34:21 (GMT)
committerDavid Howells <dhowells@redhat.com>2016-09-07 14:30:22 (GMT)
commitfff72429c2e83bdbe32dc7f1ad6398dfe50750c6 (patch)
tree3b905c48f05baada1309ebcba5d3ba0dbee9e83f /net/rxrpc/call_accept.c
parente796cb419237f54b96442ae7feca1859c693865c (diff)
downloadlinux-fff72429c2e83bdbe32dc7f1ad6398dfe50750c6.tar.xz
rxrpc: Improve the call tracking tracepoint
Improve the call tracking tracepoint by showing more differentiation between some of the put and get events, including: (1) Getting and putting refs for the socket call user ID tree. (2) Getting and putting refs for queueing and failing to queue the call processor work item. Note that these aren't necessarily used in this patch, but will be taken advantage of in future patches. An enum is added for the event subtype numbers rather than coding them directly as decimal numbers and a table of 3-letter strings is provided rather than a sequence of ?: operators. Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'net/rxrpc/call_accept.c')
-rw-r--r--net/rxrpc/call_accept.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/net/rxrpc/call_accept.c b/net/rxrpc/call_accept.c
index 68a439e..487ae7a 100644
--- a/net/rxrpc/call_accept.c
+++ b/net/rxrpc/call_accept.c
@@ -115,7 +115,7 @@ static int rxrpc_accept_incoming_call(struct rxrpc_local *local,
write_lock(&rx->call_lock);
if (!test_and_set_bit(RXRPC_CALL_INIT_ACCEPT, &call->flags)) {
- rxrpc_get_call(call);
+ rxrpc_get_call(call, rxrpc_call_got);
spin_lock(&call->conn->state_lock);
if (sp->hdr.securityIndex > 0 &&
@@ -155,7 +155,7 @@ static int rxrpc_accept_incoming_call(struct rxrpc_local *local,
_debug("done");
read_unlock_bh(&local->services_lock);
rxrpc_free_skb(notification);
- rxrpc_put_call(call);
+ rxrpc_put_call(call, rxrpc_call_put);
_leave(" = 0");
return 0;
@@ -166,11 +166,11 @@ invalid_service:
read_lock_bh(&call->state_lock);
if (!test_bit(RXRPC_CALL_RELEASED, &call->flags) &&
!test_and_set_bit(RXRPC_CALL_EV_RELEASE, &call->events)) {
- rxrpc_get_call(call);
+ rxrpc_get_call(call, rxrpc_call_got);
rxrpc_queue_call(call);
}
read_unlock_bh(&call->state_lock);
- rxrpc_put_call(call);
+ rxrpc_put_call(call, rxrpc_call_put);
ret = -ECONNREFUSED;
error:
rxrpc_free_skb(notification);
@@ -341,6 +341,7 @@ struct rxrpc_call *rxrpc_accept_call(struct rxrpc_sock *rx,
}
/* formalise the acceptance */
+ rxrpc_get_call(call, rxrpc_call_got_userid);
call->notify_rx = notify_rx;
call->user_call_ID = user_call_ID;
rb_link_node(&call->sock_node, parent, pp);
@@ -351,7 +352,6 @@ struct rxrpc_call *rxrpc_accept_call(struct rxrpc_sock *rx,
BUG();
rxrpc_queue_call(call);
- rxrpc_get_call(call);
write_unlock_bh(&call->state_lock);
write_unlock(&rx->call_lock);
_leave(" = %p{%d}", call, call->debug_id);