Skip to content

Commit 7e5ae43

Browse files
olgakorn1Trond Myklebust
authored andcommitted
NFSv4.1: add tracepoint to trunked nfs4_exchange_id calls
Add a tracepoint to track when the client sends EXCHANGE_ID to test a new transport for session trunking. nfs4_detect_session_trunking() tests for trunking and returns EINVAL if trunking can't be done, add EINVAL mapping to show_nfs4_status() in tracepoints. Signed-off-by: Olga Kornievskaia <kolga@netapp.com> Reviewed-by: Benjamin Coddington <bcodding@redhat.com> Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
1 parent fd5860a commit 7e5ae43

File tree

3 files changed

+35
-2
lines changed

3 files changed

+35
-2
lines changed

fs/nfs/nfs4proc.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8970,10 +8970,12 @@ void nfs4_test_session_trunk(struct rpc_clnt *clnt, struct rpc_xprt *xprt,
89708970
return;
89718971

89728972
status = task->tk_status;
8973-
if (status == 0)
8973+
if (status == 0) {
89748974
status = nfs4_detect_session_trunking(adata->clp,
89758975
task->tk_msg.rpc_resp, xprt);
8976-
8976+
trace_nfs4_trunked_exchange_id(adata->clp,
8977+
xprt->address_strings[RPC_DISPLAY_ADDR], status);
8978+
}
89778979
if (status == 0)
89788980
rpc_clnt_xprt_switch_add_xprt(clnt, xprt);
89798981
else if (status != -NFS4ERR_DELAY && rpc_clnt_xprt_switch_has_addr(clnt,

fs/nfs/nfs4trace.h

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,36 @@ DEFINE_NFS4_CLIENTID_EVENT(nfs4_bind_conn_to_session);
7777
DEFINE_NFS4_CLIENTID_EVENT(nfs4_sequence);
7878
DEFINE_NFS4_CLIENTID_EVENT(nfs4_reclaim_complete);
7979

80+
TRACE_EVENT(nfs4_trunked_exchange_id,
81+
TP_PROTO(
82+
const struct nfs_client *clp,
83+
const char *addr,
84+
int error
85+
),
86+
87+
TP_ARGS(clp, addr, error),
88+
89+
TP_STRUCT__entry(
90+
__string(main_addr, clp->cl_hostname)
91+
__string(trunk_addr, addr)
92+
__field(unsigned long, error)
93+
),
94+
95+
TP_fast_assign(
96+
__entry->error = error < 0 ? -error : 0;
97+
__assign_str(main_addr, clp->cl_hostname);
98+
__assign_str(trunk_addr, addr);
99+
),
100+
101+
TP_printk(
102+
"error=%ld (%s) main_addr=%s trunk_addr=%s",
103+
-__entry->error,
104+
show_nfs4_status(__entry->error),
105+
__get_str(main_addr),
106+
__get_str(trunk_addr)
107+
)
108+
);
109+
80110
TRACE_EVENT(nfs4_sequence_done,
81111
TP_PROTO(
82112
const struct nfs4_session *session,

include/trace/misc/nfs.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ TRACE_DEFINE_ENUM(NFS4ERR_RESET_TO_PNFS);
239239
{ EHOSTDOWN, "EHOSTDOWN" }, \
240240
{ EPIPE, "EPIPE" }, \
241241
{ EPFNOSUPPORT, "EPFNOSUPPORT" }, \
242+
{ EINVAL, "EINVAL" }, \
242243
{ EPROTONOSUPPORT, "EPROTONOSUPPORT" }, \
243244
{ NFS4ERR_ACCESS, "ACCESS" }, \
244245
{ NFS4ERR_ATTRNOTSUPP, "ATTRNOTSUPP" }, \

0 commit comments

Comments
 (0)