diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2013-08-20 21:59:40 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2013-08-22 08:58:27 -0400 |
commit | 08cb47faa4687342e9cbde54ff0f15a768eb5632 (patch) | |
tree | 6d05a119e96c4de5602532e1687d57195148a3f1 /fs/nfs/nfs4trace.h | |
parent | 2f92ae343e2358a4936c2470debfc4424b29eb3e (diff) |
NFSv4.1: Add tracepoints for debugging test_stateid events
Add tracepoints to detect issues with the TEST_STATEID operation.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4trace.h')
-rw-r--r-- | fs/nfs/nfs4trace.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/fs/nfs/nfs4trace.h b/fs/nfs/nfs4trace.h index 05b96a6dac5c..849cf146db30 100644 --- a/fs/nfs/nfs4trace.h +++ b/fs/nfs/nfs4trace.h | |||
@@ -638,6 +638,55 @@ TRACE_EVENT(nfs4_delegreturn_exit, | |||
638 | ) | 638 | ) |
639 | ); | 639 | ); |
640 | 640 | ||
641 | #ifdef CONFIG_NFS_V4_1 | ||
642 | DECLARE_EVENT_CLASS(nfs4_test_stateid_event, | ||
643 | TP_PROTO( | ||
644 | const struct nfs4_state *state, | ||
645 | const struct nfs4_lock_state *lsp, | ||
646 | int error | ||
647 | ), | ||
648 | |||
649 | TP_ARGS(state, lsp, error), | ||
650 | |||
651 | TP_STRUCT__entry( | ||
652 | __field(int, error) | ||
653 | __field(dev_t, dev) | ||
654 | __field(u32, fhandle) | ||
655 | __field(u64, fileid) | ||
656 | ), | ||
657 | |||
658 | TP_fast_assign( | ||
659 | const struct inode *inode = state->inode; | ||
660 | |||
661 | __entry->error = error; | ||
662 | __entry->dev = inode->i_sb->s_dev; | ||
663 | __entry->fileid = NFS_FILEID(inode); | ||
664 | __entry->fhandle = nfs_fhandle_hash(NFS_FH(inode)); | ||
665 | ), | ||
666 | |||
667 | TP_printk( | ||
668 | "error=%d (%s) fileid=%02x:%02x:%llu fhandle=0x%08x", | ||
669 | __entry->error, | ||
670 | show_nfsv4_errors(__entry->error), | ||
671 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
672 | (unsigned long long)__entry->fileid, | ||
673 | __entry->fhandle | ||
674 | ) | ||
675 | ); | ||
676 | |||
677 | #define DEFINE_NFS4_TEST_STATEID_EVENT(name) \ | ||
678 | DEFINE_EVENT(nfs4_test_stateid_event, name, \ | ||
679 | TP_PROTO( \ | ||
680 | const struct nfs4_state *state, \ | ||
681 | const struct nfs4_lock_state *lsp, \ | ||
682 | int error \ | ||
683 | ), \ | ||
684 | TP_ARGS(state, lsp, error)) | ||
685 | DEFINE_NFS4_TEST_STATEID_EVENT(nfs4_test_delegation_stateid); | ||
686 | DEFINE_NFS4_TEST_STATEID_EVENT(nfs4_test_open_stateid); | ||
687 | DEFINE_NFS4_TEST_STATEID_EVENT(nfs4_test_lock_stateid); | ||
688 | #endif /* CONFIG_NFS_V4_1 */ | ||
689 | |||
641 | DECLARE_EVENT_CLASS(nfs4_lookup_event, | 690 | DECLARE_EVENT_CLASS(nfs4_lookup_event, |
642 | TP_PROTO( | 691 | TP_PROTO( |
643 | const struct inode *dir, | 692 | const struct inode *dir, |