]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - fs/nfsd/trace.h
Merge tag 'pci-v4.5-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
[karo-tx-linux.git] / fs / nfsd / trace.h
index 0befe762762b0eb8837df625b71e2f165e668d1e..3287041905dabaca2b80b3add4269a55ecf28a27 100644 (file)
@@ -8,6 +8,47 @@
 #define _NFSD_TRACE_H
 
 #include <linux/tracepoint.h>
+#include "nfsfh.h"
+
+DECLARE_EVENT_CLASS(nfsd_io_class,
+       TP_PROTO(struct svc_rqst *rqstp,
+                struct svc_fh  *fhp,
+                loff_t         offset,
+                int            len),
+       TP_ARGS(rqstp, fhp, offset, len),
+       TP_STRUCT__entry(
+               __field(__be32, xid)
+               __field_struct(struct knfsd_fh, fh)
+               __field(loff_t, offset)
+               __field(int, len)
+       ),
+       TP_fast_assign(
+               __entry->xid = rqstp->rq_xid,
+               fh_copy_shallow(&__entry->fh, &fhp->fh_handle);
+               __entry->offset = offset;
+               __entry->len = len;
+       ),
+       TP_printk("xid=0x%x fh=0x%x offset=%lld len=%d",
+                 __be32_to_cpu(__entry->xid), knfsd_fh_hash(&__entry->fh),
+                 __entry->offset, __entry->len)
+)
+
+#define DEFINE_NFSD_IO_EVENT(name)             \
+DEFINE_EVENT(nfsd_io_class, name,              \
+       TP_PROTO(struct svc_rqst *rqstp,        \
+                struct svc_fh  *fhp,           \
+                loff_t         offset,         \
+                int            len),           \
+       TP_ARGS(rqstp, fhp, offset, len))
+
+DEFINE_NFSD_IO_EVENT(read_start);
+DEFINE_NFSD_IO_EVENT(read_opened);
+DEFINE_NFSD_IO_EVENT(read_io_done);
+DEFINE_NFSD_IO_EVENT(read_done);
+DEFINE_NFSD_IO_EVENT(write_start);
+DEFINE_NFSD_IO_EVENT(write_opened);
+DEFINE_NFSD_IO_EVENT(write_io_done);
+DEFINE_NFSD_IO_EVENT(write_done);
 
 #include "state.h"