Commit 272e2b89 authored by Jeff Layton's avatar Jeff Layton Committed by Chuck Lever
Browse files

nfsd: add tracepoint to nfsd_link()



Observe the start of NFS LINK operations.

Signed-off-by: default avatarJeff Layton <jlayton@kernel.org>
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
parent 2344b723
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -2471,6 +2471,33 @@ TRACE_EVENT(nfsd_vfs_symlink,
	)
);

TRACE_EVENT(nfsd_vfs_link,
	TP_PROTO(
		const struct svc_rqst *rqstp,
		const struct svc_fh *sfhp,
		const struct svc_fh *tfhp,
		const char *name,
		unsigned int namelen
	),
	TP_ARGS(rqstp, sfhp, tfhp, name, namelen),
	TP_STRUCT__entry(
		NFSD_TRACE_PROC_CALL_FIELDS(rqstp)
		__field(u32, sfh_hash)
		__field(u32, tfh_hash)
		__string_len(name, name, namelen)
	),
	TP_fast_assign(
		NFSD_TRACE_PROC_CALL_ASSIGNMENTS(rqstp);
		__entry->sfh_hash = knfsd_fh_hash(&sfhp->fh_handle);
		__entry->tfh_hash = knfsd_fh_hash(&tfhp->fh_handle);
		__assign_str(name);
	),
	TP_printk("xid=0x%08x src_fh=0x%08x tgt_fh=0x%08x name=%s",
		__entry->xid, __entry->sfh_hash, __entry->tfh_hash,
		__get_str(name)
	)
);

#endif /* _NFSD_TRACE_H */

#undef TRACE_INCLUDE_PATH
+2 −0
Original line number Diff line number Diff line
@@ -1721,6 +1721,8 @@ nfsd_link(struct svc_rqst *rqstp, struct svc_fh *ffhp,
	__be32		err;
	int		host_err;

	trace_nfsd_vfs_link(rqstp, ffhp, tfhp, name, len);

	err = fh_verify(rqstp, ffhp, S_IFDIR, NFSD_MAY_CREATE);
	if (err)
		goto out;