NFSv4: Add tracing for COMPOUND errors
When the server returns a different operation than we expected, then trace that. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
parent
ce62b114bb
commit
da934ae0a8
@ -666,6 +666,41 @@ TRACE_EVENT(nfs4_state_mgr_failed,
|
||||
)
|
||||
)
|
||||
|
||||
TRACE_EVENT(nfs4_xdr_bad_operation,
|
||||
TP_PROTO(
|
||||
const struct xdr_stream *xdr,
|
||||
u32 op,
|
||||
u32 expected
|
||||
),
|
||||
|
||||
TP_ARGS(xdr, op, expected),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(unsigned int, task_id)
|
||||
__field(unsigned int, client_id)
|
||||
__field(u32, xid)
|
||||
__field(u32, op)
|
||||
__field(u32, expected)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
const struct rpc_rqst *rqstp = xdr->rqst;
|
||||
const struct rpc_task *task = rqstp->rq_task;
|
||||
|
||||
__entry->task_id = task->tk_pid;
|
||||
__entry->client_id = task->tk_client->cl_clid;
|
||||
__entry->xid = be32_to_cpu(rqstp->rq_xid);
|
||||
__entry->op = op;
|
||||
__entry->expected = expected;
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
"task:%u@%d xid=0x%08x operation=%u, expected=%u",
|
||||
__entry->task_id, __entry->client_id, __entry->xid,
|
||||
__entry->op, __entry->expected
|
||||
)
|
||||
);
|
||||
|
||||
TRACE_EVENT(nfs4_xdr_status,
|
||||
TP_PROTO(
|
||||
const struct xdr_stream *xdr,
|
||||
|
@ -3210,9 +3210,7 @@ out_status:
|
||||
*nfs_retval = nfs4_stat_to_errno(nfserr);
|
||||
return true;
|
||||
out_bad_operation:
|
||||
dprintk("nfs: Server returned operation"
|
||||
" %d but we issued a request for %d\n",
|
||||
opnum, expected);
|
||||
trace_nfs4_xdr_bad_operation(xdr, opnum, expected);
|
||||
*nfs_retval = -EREMOTEIO;
|
||||
return false;
|
||||
out_overflow:
|
||||
|
Loading…
Reference in New Issue
Block a user