nfs: Use proper enum definitions for nfs_show_stable
authorChuck Lever <chuck.lever@oracle.com>
Thu, 18 Jan 2018 19:55:01 +0000 (14:55 -0500)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Thu, 18 Jan 2018 20:01:22 +0000 (15:01 -0500)
Commit 8224b2734ab1 ("NFS: Add static NFS I/O tracepoints") had a
hack to work around some odd behavior observed with
__print_symbolic. I couldn't ever get it to display NFS_FILE_SYNC
when using TRACE_DEFINE_ENUM macros to set up the enum values.

I tracked down the actual bug that forced me to add the workaround.
That issue will be addressed soon, so replace the hack with a proper
implementation.

Fixes: 8224b2734ab1 ("NFS: Add static NFS I/O tracepoints")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/nfstrace.h

index 093290c42d7ccb2795c1cf91b3726e06fe714678..c6dbd48896a192cd0839499ff789602c2c71d35c 100644 (file)
@@ -796,15 +796,15 @@ TRACE_EVENT(nfs_readpage_done,
                )
 );
 
-/*
- * XXX: I tried using NFS_UNSTABLE and friends in this table, but they
- * all evaluate to 0 for some reason, even if I include linux/nfs.h.
- */
+TRACE_DEFINE_ENUM(NFS_UNSTABLE);
+TRACE_DEFINE_ENUM(NFS_DATA_SYNC);
+TRACE_DEFINE_ENUM(NFS_FILE_SYNC);
+
 #define nfs_show_stable(stable) \
        __print_symbolic(stable, \
-                       { 0, " (UNSTABLE)" }, \
-                       { 1, " (DATA_SYNC)" }, \
-                       { 2, " (FILE_SYNC)" })
+                       { NFS_UNSTABLE, "UNSTABLE" }, \
+                       { NFS_DATA_SYNC, "DATA_SYNC" }, \
+                       { NFS_FILE_SYNC, "FILE_SYNC" })
 
 TRACE_EVENT(nfs_initiate_write,
                TP_PROTO(
@@ -837,12 +837,12 @@ TRACE_EVENT(nfs_initiate_write,
 
                TP_printk(
                        "fileid=%02x:%02x:%llu fhandle=0x%08x "
-                       "offset=%lld count=%lu stable=%d%s",
+                       "offset=%lld count=%lu stable=%s",
                        MAJOR(__entry->dev), MINOR(__entry->dev),
                        (unsigned long long)__entry->fileid,
                        __entry->fhandle,
                        __entry->offset, __entry->count,
-                       __entry->stable, nfs_show_stable(__entry->stable)
+                       nfs_show_stable(__entry->stable)
                )
 );
 
@@ -881,13 +881,13 @@ TRACE_EVENT(nfs_writeback_done,
 
                TP_printk(
                        "fileid=%02x:%02x:%llu fhandle=0x%08x "
-                       "offset=%lld status=%d stable=%d%s "
+                       "offset=%lld status=%d stable=%s "
                        "verifier 0x%016llx",
                        MAJOR(__entry->dev), MINOR(__entry->dev),
                        (unsigned long long)__entry->fileid,
                        __entry->fhandle,
                        __entry->offset, __entry->status,
-                       __entry->stable, nfs_show_stable(__entry->stable),
+                       nfs_show_stable(__entry->stable),
                        __entry->verifier
                )
 );