nfsd: new tracepoint for after op_func in compound processing

Turn nfsd_compound_encode_err tracepoint into a class and add a new
nfsd_compound_op_err tracepoint.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
Jeff Layton 2024-10-18 14:45:01 -04:00 committed by Chuck Lever
parent f6259e2e4f
commit b9376c7e42
2 changed files with 14 additions and 1 deletions

View File

@ -2780,6 +2780,7 @@ nfsd4_proc_compound(struct svc_rqst *rqstp)
if (op->opdesc->op_get_currentstateid) if (op->opdesc->op_get_currentstateid)
op->opdesc->op_get_currentstateid(cstate, &op->u); op->opdesc->op_get_currentstateid(cstate, &op->u);
op->status = op->opdesc->op_func(rqstp, cstate, &op->u); op->status = op->opdesc->op_func(rqstp, cstate, &op->u);
trace_nfsd_compound_op_err(rqstp, op->opnum, op->status);
/* Only from SEQUENCE */ /* Only from SEQUENCE */
if (cstate->status == nfserr_replay_cache) { if (cstate->status == nfserr_replay_cache) {

View File

@ -163,7 +163,7 @@ TRACE_EVENT(nfsd_compound_decode_err,
__entry->opnum, __entry->status) __entry->opnum, __entry->status)
); );
TRACE_EVENT(nfsd_compound_encode_err, DECLARE_EVENT_CLASS(nfsd_compound_err_class,
TP_PROTO( TP_PROTO(
const struct svc_rqst *rqstp, const struct svc_rqst *rqstp,
u32 opnum, u32 opnum,
@ -184,6 +184,18 @@ TRACE_EVENT(nfsd_compound_encode_err,
__entry->opnum, __entry->status) __entry->opnum, __entry->status)
); );
#define DEFINE_NFSD_COMPOUND_ERR_EVENT(name) \
DEFINE_EVENT(nfsd_compound_err_class, nfsd_compound_##name##_err, \
TP_PROTO( \
const struct svc_rqst *rqstp, \
u32 opnum, \
__be32 status \
), \
TP_ARGS(rqstp, opnum, status))
DEFINE_NFSD_COMPOUND_ERR_EVENT(op);
DEFINE_NFSD_COMPOUND_ERR_EVENT(encode);
#define show_fs_file_type(x) \ #define show_fs_file_type(x) \
__print_symbolic(x, \ __print_symbolic(x, \
{ S_IFLNK, "LNK" }, \ { S_IFLNK, "LNK" }, \