aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/nfs4trace.h
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2013-08-13 13:01:39 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2013-08-22 08:58:25 -0400
commitb5f875a92591d06c57e786b3c916e21e290ad844 (patch)
tree2fd262caf62b21ad54d8683a7c4bde8fd9001c07 /fs/nfs/nfs4trace.h
parent1f2d30b5338f1adaac249707ae49f1c675049cfc (diff)
NFSv4: Add tracepoints for debugging getattr
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4trace.h')
-rw-r--r--fs/nfs/nfs4trace.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/fs/nfs/nfs4trace.h b/fs/nfs/nfs4trace.h
index f58edcf418bf..99d1b1e79650 100644
--- a/fs/nfs/nfs4trace.h
+++ b/fs/nfs/nfs4trace.h
@@ -174,6 +174,24 @@
174 { ((__force unsigned long)FMODE_WRITE), "WRITE" }, \ 174 { ((__force unsigned long)FMODE_WRITE), "WRITE" }, \
175 { ((__force unsigned long)FMODE_EXEC), "EXEC" }) 175 { ((__force unsigned long)FMODE_EXEC), "EXEC" })
176 176
177#define show_nfs_fattr_flags(valid) \
178 __print_flags((unsigned long)valid, "|", \
179 { NFS_ATTR_FATTR_TYPE, "TYPE" }, \
180 { NFS_ATTR_FATTR_MODE, "MODE" }, \
181 { NFS_ATTR_FATTR_NLINK, "NLINK" }, \
182 { NFS_ATTR_FATTR_OWNER, "OWNER" }, \
183 { NFS_ATTR_FATTR_GROUP, "GROUP" }, \
184 { NFS_ATTR_FATTR_RDEV, "RDEV" }, \
185 { NFS_ATTR_FATTR_SIZE, "SIZE" }, \
186 { NFS_ATTR_FATTR_FSID, "FSID" }, \
187 { NFS_ATTR_FATTR_FILEID, "FILEID" }, \
188 { NFS_ATTR_FATTR_ATIME, "ATIME" }, \
189 { NFS_ATTR_FATTR_MTIME, "MTIME" }, \
190 { NFS_ATTR_FATTR_CTIME, "CTIME" }, \
191 { NFS_ATTR_FATTR_CHANGE, "CHANGE" }, \
192 { NFS_ATTR_FATTR_OWNER_NAME, "OWNER_NAME" }, \
193 { NFS_ATTR_FATTR_GROUP_NAME, "GROUP_NAME" })
194
177DECLARE_EVENT_CLASS(nfs4_clientid_event, 195DECLARE_EVENT_CLASS(nfs4_clientid_event,
178 TP_PROTO( 196 TP_PROTO(
179 const struct nfs_client *clp, 197 const struct nfs_client *clp,
@@ -627,6 +645,57 @@ DEFINE_NFS4_INODE_EVENT(nfs4_set_security_label);
627DEFINE_NFS4_INODE_EVENT(nfs4_recall_delegation); 645DEFINE_NFS4_INODE_EVENT(nfs4_recall_delegation);
628DEFINE_NFS4_INODE_EVENT(nfs4_delegreturn); 646DEFINE_NFS4_INODE_EVENT(nfs4_delegreturn);
629 647
648DECLARE_EVENT_CLASS(nfs4_getattr_event,
649 TP_PROTO(
650 const struct nfs_server *server,
651 const struct nfs_fh *fhandle,
652 const struct nfs_fattr *fattr,
653 int error
654 ),
655
656 TP_ARGS(server, fhandle, fattr, error),
657
658 TP_STRUCT__entry(
659 __field(dev_t, dev)
660 __field(u32, fhandle)
661 __field(u64, fileid)
662 __field(unsigned int, valid)
663 __field(int, error)
664 ),
665
666 TP_fast_assign(
667 __entry->dev = server->s_dev;
668 __entry->valid = fattr->valid;
669 __entry->fhandle = nfs_fhandle_hash(fhandle);
670 __entry->fileid = (fattr->valid & NFS_ATTR_FATTR_FILEID) ? fattr->fileid : 0;
671 __entry->error = error;
672 ),
673
674 TP_printk(
675 "error=%d (%s) fileid=%02x:%02x:%llu fhandle=0x%08x "
676 "valid=%s",
677 __entry->error,
678 show_nfsv4_errors(__entry->error),
679 MAJOR(__entry->dev), MINOR(__entry->dev),
680 (unsigned long long)__entry->fileid,
681 __entry->fhandle,
682 show_nfs_fattr_flags(__entry->valid)
683 )
684);
685
686#define DEFINE_NFS4_GETATTR_EVENT(name) \
687 DEFINE_EVENT(nfs4_getattr_event, name, \
688 TP_PROTO( \
689 const struct nfs_server *server, \
690 const struct nfs_fh *fhandle, \
691 const struct nfs_fattr *fattr, \
692 int error \
693 ), \
694 TP_ARGS(server, fhandle, fattr, error))
695DEFINE_NFS4_GETATTR_EVENT(nfs4_getattr);
696DEFINE_NFS4_GETATTR_EVENT(nfs4_lookup_root);
697DEFINE_NFS4_GETATTR_EVENT(nfs4_fsinfo);
698
630DECLARE_EVENT_CLASS(nfs4_idmap_event, 699DECLARE_EVENT_CLASS(nfs4_idmap_event,
631 TP_PROTO( 700 TP_PROTO(
632 const char *name, 701 const char *name,