diff --git a/include/trace/events/sunrpc.h b/include/trace/events/sunrpc.h index d51d16c7afd8..ddc179b7a105 100644 --- a/include/trace/events/sunrpc.h +++ b/include/trace/events/sunrpc.h @@ -301,6 +301,7 @@ DECLARE_EVENT_CLASS(xs_socket_event_done, DEFINE_RPC_SOCKET_EVENT(rpc_socket_state_change); DEFINE_RPC_SOCKET_EVENT_DONE(rpc_socket_connect); +DEFINE_RPC_SOCKET_EVENT_DONE(rpc_socket_error); DEFINE_RPC_SOCKET_EVENT_DONE(rpc_socket_reset_connection); DEFINE_RPC_SOCKET_EVENT(rpc_socket_close); DEFINE_RPC_SOCKET_EVENT(rpc_socket_shutdown); diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c index ab006b7b7ab8..25dbfa971948 100644 --- a/net/sunrpc/xprtsock.c +++ b/net/sunrpc/xprtsock.c @@ -837,6 +837,7 @@ static void xs_error_report(struct sock *sk) goto out; dprintk("RPC: xs_error_report client %p, error=%d...\n", xprt, -err); + trace_rpc_socket_error(xprt, sk->sk_socket, err); xprt_wake_pending_tasks(xprt, err); out: read_unlock_bh(&sk->sk_callback_lock);