Commit da934ae0 authored by Trond Myklebust's avatar Trond Myklebust
Browse files

NFSv4: Add tracing for COMPOUND errors



When the server returns a different operation than we expected, then
trace that.

Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent ce62b114
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
@@ -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,
+1 −3
Original line number Diff line number Diff line
@@ -3210,9 +3210,7 @@ static bool __decode_op_hdr(struct xdr_stream *xdr, enum nfs_opnum4 expected,
	*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: