...and remove the legacy dprintks. Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> --- fs/nfsd/nfs3proc.c | 10 ++-------- fs/nfsd/nfs4proc.c | 4 ++++ fs/nfsd/nfsproc.c | 6 ++---- fs/nfsd/trace.h | 40 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 48 insertions(+), 12 deletions(-) diff --git a/fs/nfsd/nfs3proc.c b/fs/nfsd/nfs3proc.c index 8893bf5e0b1d15b24e9c2c71fa1a8a09586a03d3..4fd3c2284eb96c1d712639675140412b84eadb2f 100644 --- a/fs/nfsd/nfs3proc.c +++ b/fs/nfsd/nfs3proc.c @@ -535,14 +535,8 @@ nfsd3_proc_rename(struct svc_rqst *rqstp) struct nfsd3_renameargs *argp = rqstp->rq_argp; struct nfsd3_renameres *resp = rqstp->rq_resp; - dprintk("nfsd: RENAME(3) %s %.*s ->\n", - SVCFH_fmt(&argp->ffh), - argp->flen, - argp->fname); - dprintk("nfsd: -> %s %.*s\n", - SVCFH_fmt(&argp->tfh), - argp->tlen, - argp->tname); + trace_nfsd3_proc_rename(rqstp, &argp->ffh, &argp->tfh, argp->fname, + argp->flen, argp->tname, argp->tlen); fh_copy(&resp->ffh, &argp->ffh); fh_copy(&resp->tfh, &argp->tfh); diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c index 8524e78201e22984517e93cd9a2834190266c633..7e6c80e0482a997d4085c87dae88d10c2f06b77b 100644 --- a/fs/nfsd/nfs4proc.c +++ b/fs/nfsd/nfs4proc.c @@ -1132,6 +1132,10 @@ nfsd4_rename(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct nfsd4_rename *rename = &u->rename; __be32 status; + trace_nfsd4_rename(rqstp, &cstate->save_fh, &cstate->current_fh, + rename->rn_sname, rename->rn_snamelen, + rename->rn_tname, rename->rn_tnamelen); + if (opens_in_grace(SVC_NET(rqstp))) return nfserr_grace; status = nfsd_rename(rqstp, &cstate->save_fh, rename->rn_sname, diff --git a/fs/nfsd/nfsproc.c b/fs/nfsd/nfsproc.c index 55656bb0264c31c10419ed41240c91ba66493106..d99e1bff2f8a99e477e3cf21eb7058cfe40a7cb4 100644 --- a/fs/nfsd/nfsproc.c +++ b/fs/nfsd/nfsproc.c @@ -461,10 +461,8 @@ nfsd_proc_rename(struct svc_rqst *rqstp) struct nfsd_renameargs *argp = rqstp->rq_argp; struct nfsd_stat *resp = rqstp->rq_resp; - dprintk("nfsd: RENAME %s %.*s -> \n", - SVCFH_fmt(&argp->ffh), argp->flen, argp->fname); - dprintk("nfsd: -> %s %.*s\n", - SVCFH_fmt(&argp->tfh), argp->tlen, argp->tname); + trace_nfsd_proc_rename(rqstp, &argp->ffh, &argp->tfh, argp->fname, + argp->flen, argp->tname, argp->tlen); resp->status = nfsd_rename(rqstp, &argp->ffh, argp->fname, argp->flen, &argp->tfh, argp->tname, argp->tlen); diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index dd984917bd0a741ac545c06631ab2a7de8af5158..7bf3ee4acd9862171cae5caefced3507f4897e90 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -2534,6 +2534,46 @@ DEFINE_NFSD_VFS_UNLINK_EVENT(nfsd3_proc_remove); DEFINE_NFSD_VFS_UNLINK_EVENT(nfsd3_proc_rmdir); DEFINE_NFSD_VFS_UNLINK_EVENT(nfsd4_remove); +DECLARE_EVENT_CLASS(nfsd_vfs_rename_class, + TP_PROTO(struct svc_rqst *rqstp, + struct svc_fh *sfhp, + struct svc_fh *tfhp, + const char *name, + unsigned int namelen, + const char *tgt, + unsigned int tgtlen), + TP_ARGS(rqstp, sfhp, tfhp, name, namelen, tgt, tgtlen), + TP_STRUCT__entry( + SVC_RQST_ENDPOINT_FIELDS(rqstp) + __field(u32, sfh_hash) + __field(u32, tfh_hash) + __string_len(name, name, namelen) + __string_len(tgt, tgt, tgtlen) + ), + TP_fast_assign( + SVC_RQST_ENDPOINT_ASSIGNMENTS(rqstp); + __entry->sfh_hash = knfsd_fh_hash(&sfhp->fh_handle); + __entry->tfh_hash = knfsd_fh_hash(&tfhp->fh_handle); + __assign_str(name); + __assign_str(tgt); + ), + TP_printk("xid=0x%08x sfh_hash=0x%08x tfh_hash=0x%08x name=%s target=%s", + __entry->xid, __entry->sfh_hash, __entry->tfh_hash, + __get_str(name), __get_str(tgt)) +); + +#define DEFINE_NFSD_VFS_RENAME_EVENT(__name) \ + DEFINE_EVENT(nfsd_vfs_rename_class, __name, \ + TP_PROTO(struct svc_rqst *rqstp, \ + struct svc_fh *sfhp, struct svc_fh *tfhp, \ + const char *name, unsigned int namelen, \ + const char *tgt, unsigned int tgtlen), \ + TP_ARGS(rqstp, sfhp, tfhp, name, namelen, tgt, tgtlen)) + +DEFINE_NFSD_VFS_RENAME_EVENT(nfsd_proc_rename); +DEFINE_NFSD_VFS_RENAME_EVENT(nfsd3_proc_rename); +DEFINE_NFSD_VFS_RENAME_EVENT(nfsd4_rename); + #endif /* _NFSD_TRACE_H */ #undef TRACE_INCLUDE_PATH -- 2.49.0