NFSD: Trace stateids returned via DELEGRETURN
authorChuck Lever <chuck.lever@oracle.com>
Fri, 28 Oct 2022 14:47:03 +0000 (10:47 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 28 Nov 2022 17:54:46 +0000 (12:54 -0500)
Handing out a delegation stateid is recorded with the
nfsd_deleg_read tracepoint, but there isn't a matching tracepoint
for recording when the stateid is returned.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
fs/nfsd/nfs4state.c
fs/nfsd/trace.h

index 16c3e99..9ec6661 100644 (file)
@@ -6917,6 +6917,7 @@ nfsd4_delegreturn(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
        if (status)
                goto put_stateid;
 
+       trace_nfsd_deleg_return(stateid);
        wake_up_var(d_inode(cstate->current_fh.fh_dentry));
        destroy_delegation(dp);
 put_stateid:
index 3fcfeb7..00908f7 100644 (file)
@@ -604,6 +604,7 @@ DEFINE_STATEID_EVENT(layout_recall_release);
 
 DEFINE_STATEID_EVENT(open);
 DEFINE_STATEID_EVENT(deleg_read);
+DEFINE_STATEID_EVENT(deleg_return);
 DEFINE_STATEID_EVENT(deleg_recall);
 
 DECLARE_EVENT_CLASS(nfsd_stateseqid_class,