xref: /openbmc/linux/include/trace/misc/nfs.h (revision 7ae9fb1b7ecbb5d85d07857943f677fd1a559b18)
1247c01ffSChuck Lever /* SPDX-License-Identifier: GPL-2.0 */
2247c01ffSChuck Lever /*
3247c01ffSChuck Lever  * Display helpers for NFS protocol elements
4247c01ffSChuck Lever  *
5247c01ffSChuck Lever  * Author: Chuck Lever <chuck.lever@oracle.com>
6247c01ffSChuck Lever  *
7247c01ffSChuck Lever  * Copyright (c) 2020, Oracle and/or its affiliates.
8247c01ffSChuck Lever  */
9247c01ffSChuck Lever 
10247c01ffSChuck Lever #include <linux/nfs.h>
11247c01ffSChuck Lever #include <linux/nfs4.h>
12247c01ffSChuck Lever #include <uapi/linux/nfs.h>
13247c01ffSChuck Lever 
14247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS_OK);
15247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_PERM);
16247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_NOENT);
17247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_IO);
18247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_NXIO);
19247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_EAGAIN);
20247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_ACCES);
21247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_EXIST);
22247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_XDEV);
23247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_NODEV);
24247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_NOTDIR);
25247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_ISDIR);
26247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_INVAL);
27247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_FBIG);
28247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_NOSPC);
29247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_ROFS);
30247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_MLINK);
31247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_OPNOTSUPP);
32247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_NAMETOOLONG);
33247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_NOTEMPTY);
34247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_DQUOT);
35247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_STALE);
36247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_REMOTE);
37247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_WFLUSH);
38247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_BADHANDLE);
39247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_NOT_SYNC);
40247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_BAD_COOKIE);
41247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_NOTSUPP);
42247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_TOOSMALL);
43247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_SERVERFAULT);
44247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_BADTYPE);
45247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFSERR_JUKEBOX);
46247c01ffSChuck Lever 
47247c01ffSChuck Lever #define show_nfs_status(x) \
48247c01ffSChuck Lever 	__print_symbolic(x, \
49247c01ffSChuck Lever 		{ NFS_OK,			"OK" }, \
50247c01ffSChuck Lever 		{ NFSERR_PERM,			"PERM" }, \
51247c01ffSChuck Lever 		{ NFSERR_NOENT,			"NOENT" }, \
52247c01ffSChuck Lever 		{ NFSERR_IO,			"IO" }, \
53247c01ffSChuck Lever 		{ NFSERR_NXIO,			"NXIO" }, \
54247c01ffSChuck Lever 		{ ECHILD,			"CHILD" }, \
55247c01ffSChuck Lever 		{ NFSERR_EAGAIN,		"AGAIN" }, \
56247c01ffSChuck Lever 		{ NFSERR_ACCES,			"ACCES" }, \
57247c01ffSChuck Lever 		{ NFSERR_EXIST,			"EXIST" }, \
58247c01ffSChuck Lever 		{ NFSERR_XDEV,			"XDEV" }, \
59247c01ffSChuck Lever 		{ NFSERR_NODEV,			"NODEV" }, \
60247c01ffSChuck Lever 		{ NFSERR_NOTDIR,		"NOTDIR" }, \
61247c01ffSChuck Lever 		{ NFSERR_ISDIR,			"ISDIR" }, \
62247c01ffSChuck Lever 		{ NFSERR_INVAL,			"INVAL" }, \
63247c01ffSChuck Lever 		{ NFSERR_FBIG,			"FBIG" }, \
64247c01ffSChuck Lever 		{ NFSERR_NOSPC,			"NOSPC" }, \
65247c01ffSChuck Lever 		{ NFSERR_ROFS,			"ROFS" }, \
66247c01ffSChuck Lever 		{ NFSERR_MLINK,			"MLINK" }, \
67247c01ffSChuck Lever 		{ NFSERR_OPNOTSUPP,		"OPNOTSUPP" }, \
68247c01ffSChuck Lever 		{ NFSERR_NAMETOOLONG,		"NAMETOOLONG" }, \
69247c01ffSChuck Lever 		{ NFSERR_NOTEMPTY,		"NOTEMPTY" }, \
70247c01ffSChuck Lever 		{ NFSERR_DQUOT,			"DQUOT" }, \
71247c01ffSChuck Lever 		{ NFSERR_STALE,			"STALE" }, \
72247c01ffSChuck Lever 		{ NFSERR_REMOTE,		"REMOTE" }, \
73247c01ffSChuck Lever 		{ NFSERR_WFLUSH,		"WFLUSH" }, \
74247c01ffSChuck Lever 		{ NFSERR_BADHANDLE,		"BADHANDLE" }, \
75247c01ffSChuck Lever 		{ NFSERR_NOT_SYNC,		"NOTSYNC" }, \
76247c01ffSChuck Lever 		{ NFSERR_BAD_COOKIE,		"BADCOOKIE" }, \
77247c01ffSChuck Lever 		{ NFSERR_NOTSUPP,		"NOTSUPP" }, \
78247c01ffSChuck Lever 		{ NFSERR_TOOSMALL,		"TOOSMALL" }, \
79247c01ffSChuck Lever 		{ NFSERR_SERVERFAULT,		"REMOTEIO" }, \
80247c01ffSChuck Lever 		{ NFSERR_BADTYPE,		"BADTYPE" }, \
81247c01ffSChuck Lever 		{ NFSERR_JUKEBOX,		"JUKEBOX" })
82247c01ffSChuck Lever 
83247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS_UNSTABLE);
84247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS_DATA_SYNC);
85247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS_FILE_SYNC);
86247c01ffSChuck Lever 
87247c01ffSChuck Lever #define show_nfs_stable_how(x) \
88247c01ffSChuck Lever 	__print_symbolic(x, \
89247c01ffSChuck Lever 		{ NFS_UNSTABLE,			"UNSTABLE" }, \
90247c01ffSChuck Lever 		{ NFS_DATA_SYNC,		"DATA_SYNC" }, \
91247c01ffSChuck Lever 		{ NFS_FILE_SYNC,		"FILE_SYNC" })
92247c01ffSChuck Lever 
93247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4_OK);
94247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_ACCESS);
95247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_ATTRNOTSUPP);
96247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_ADMIN_REVOKED);
97247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_BACK_CHAN_BUSY);
98247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_BADCHAR);
99247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_BADHANDLE);
100247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_BADIOMODE);
101247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_BADLAYOUT);
102247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_BADLABEL);
103247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_BADNAME);
104247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_BADOWNER);
105247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_BADSESSION);
106247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_BADSLOT);
107247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_BADTYPE);
108247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_BADXDR);
109247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_BAD_COOKIE);
110247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_BAD_HIGH_SLOT);
111247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_BAD_RANGE);
112247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_BAD_SEQID);
113247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_BAD_SESSION_DIGEST);
114247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_BAD_STATEID);
115247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_CB_PATH_DOWN);
116247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_CLID_INUSE);
117247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_CLIENTID_BUSY);
118247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_COMPLETE_ALREADY);
119247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_CONN_NOT_BOUND_TO_SESSION);
120247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_DEADLOCK);
121247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_DEADSESSION);
122247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_DELAY);
123247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_DELEG_ALREADY_WANTED);
124247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_DELEG_REVOKED);
125247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_DENIED);
126247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_DIRDELEG_UNAVAIL);
127247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_DQUOT);
128247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_ENCR_ALG_UNSUPP);
129247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_EXIST);
130247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_EXPIRED);
131247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_FBIG);
132247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_FHEXPIRED);
133247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_FILE_OPEN);
134247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_GRACE);
135247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_HASH_ALG_UNSUPP);
136247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_INVAL);
137247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_IO);
138247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_ISDIR);
139247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_LAYOUTTRYLATER);
140247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_LAYOUTUNAVAILABLE);
141247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_LEASE_MOVED);
142247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_LOCKED);
143247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_LOCKS_HELD);
144247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_LOCK_RANGE);
145247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_MINOR_VERS_MISMATCH);
146247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_MLINK);
147247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_MOVED);
148247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_NAMETOOLONG);
149247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_NOENT);
150247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_NOFILEHANDLE);
151247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_NOMATCHING_LAYOUT);
152247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_NOSPC);
153247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_NOTDIR);
154247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_NOTEMPTY);
155247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_NOTSUPP);
156247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_NOT_ONLY_OP);
157247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_NOT_SAME);
158247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_NO_GRACE);
159247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_NXIO);
160247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_OLD_STATEID);
161247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_OPENMODE);
162247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_OP_ILLEGAL);
163247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_OP_NOT_IN_SESSION);
164247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_PERM);
165247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_PNFS_IO_HOLE);
166247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_PNFS_NO_LAYOUT);
167247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_RECALLCONFLICT);
168247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_RECLAIM_BAD);
169247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_RECLAIM_CONFLICT);
170247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_REJECT_DELEG);
171247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_REP_TOO_BIG);
172247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_REP_TOO_BIG_TO_CACHE);
173247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_REQ_TOO_BIG);
174247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_RESOURCE);
175247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_RESTOREFH);
176247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_RETRY_UNCACHED_REP);
177247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_RETURNCONFLICT);
178247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_ROFS);
179247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_SAME);
180247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_SHARE_DENIED);
181247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_SEQUENCE_POS);
182247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_SEQ_FALSE_RETRY);
183247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_SEQ_MISORDERED);
184247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_SERVERFAULT);
185247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_STALE);
186247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_STALE_CLIENTID);
187247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_STALE_STATEID);
188247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_SYMLINK);
189247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_TOOSMALL);
190247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_TOO_MANY_OPS);
191247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_UNKNOWN_LAYOUTTYPE);
192247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_UNSAFE_COMPOUND);
193247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_WRONGSEC);
194247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_WRONG_CRED);
195247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_WRONG_TYPE);
196247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_XDEV);
197247c01ffSChuck Lever 
198247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_RESET_TO_MDS);
199247c01ffSChuck Lever TRACE_DEFINE_ENUM(NFS4ERR_RESET_TO_PNFS);
200247c01ffSChuck Lever 
201247c01ffSChuck Lever #define show_nfs4_status(x) \
202247c01ffSChuck Lever 	__print_symbolic(x, \
203247c01ffSChuck Lever 		{ NFS4_OK,			"OK" }, \
204247c01ffSChuck Lever 		{ EPERM,			"EPERM" }, \
205247c01ffSChuck Lever 		{ ENOENT,			"ENOENT" }, \
206247c01ffSChuck Lever 		{ EIO,				"EIO" }, \
207247c01ffSChuck Lever 		{ ENXIO,			"ENXIO" }, \
208247c01ffSChuck Lever 		{ EACCES,			"EACCES" }, \
209247c01ffSChuck Lever 		{ EEXIST,			"EEXIST" }, \
210247c01ffSChuck Lever 		{ EXDEV,			"EXDEV" }, \
211247c01ffSChuck Lever 		{ ENOTDIR,			"ENOTDIR" }, \
212247c01ffSChuck Lever 		{ EISDIR,			"EISDIR" }, \
213247c01ffSChuck Lever 		{ EFBIG,			"EFBIG" }, \
214247c01ffSChuck Lever 		{ ENOSPC,			"ENOSPC" }, \
215247c01ffSChuck Lever 		{ EROFS,			"EROFS" }, \
216247c01ffSChuck Lever 		{ EMLINK,			"EMLINK" }, \
217247c01ffSChuck Lever 		{ ENAMETOOLONG,			"ENAMETOOLONG" }, \
218247c01ffSChuck Lever 		{ ENOTEMPTY,			"ENOTEMPTY" }, \
219247c01ffSChuck Lever 		{ EDQUOT,			"EDQUOT" }, \
220247c01ffSChuck Lever 		{ ESTALE,			"ESTALE" }, \
221247c01ffSChuck Lever 		{ EBADHANDLE,			"EBADHANDLE" }, \
222247c01ffSChuck Lever 		{ EBADCOOKIE,			"EBADCOOKIE" }, \
223247c01ffSChuck Lever 		{ ENOTSUPP,			"ENOTSUPP" }, \
224247c01ffSChuck Lever 		{ ETOOSMALL,			"ETOOSMALL" }, \
225247c01ffSChuck Lever 		{ EREMOTEIO,			"EREMOTEIO" }, \
226247c01ffSChuck Lever 		{ EBADTYPE,			"EBADTYPE" }, \
227247c01ffSChuck Lever 		{ EAGAIN,			"EAGAIN" }, \
228247c01ffSChuck Lever 		{ ELOOP,			"ELOOP" }, \
229247c01ffSChuck Lever 		{ EOPNOTSUPP,			"EOPNOTSUPP" }, \
230247c01ffSChuck Lever 		{ EDEADLK,			"EDEADLK" }, \
231247c01ffSChuck Lever 		{ ENOMEM,			"ENOMEM" }, \
232247c01ffSChuck Lever 		{ EKEYEXPIRED,			"EKEYEXPIRED" }, \
233247c01ffSChuck Lever 		{ ETIMEDOUT,			"ETIMEDOUT" }, \
234247c01ffSChuck Lever 		{ ERESTARTSYS,			"ERESTARTSYS" }, \
235247c01ffSChuck Lever 		{ ECONNREFUSED,			"ECONNREFUSED" }, \
236247c01ffSChuck Lever 		{ ECONNRESET,			"ECONNRESET" }, \
237247c01ffSChuck Lever 		{ ENETUNREACH,			"ENETUNREACH" }, \
238247c01ffSChuck Lever 		{ EHOSTUNREACH,			"EHOSTUNREACH" }, \
239247c01ffSChuck Lever 		{ EHOSTDOWN,			"EHOSTDOWN" }, \
240247c01ffSChuck Lever 		{ EPIPE,			"EPIPE" }, \
241247c01ffSChuck Lever 		{ EPFNOSUPPORT,			"EPFNOSUPPORT" }, \
242247c01ffSChuck Lever 		{ EPROTONOSUPPORT,		"EPROTONOSUPPORT" }, \
243247c01ffSChuck Lever 		{ NFS4ERR_ACCESS,		"ACCESS" }, \
244247c01ffSChuck Lever 		{ NFS4ERR_ATTRNOTSUPP,		"ATTRNOTSUPP" }, \
245247c01ffSChuck Lever 		{ NFS4ERR_ADMIN_REVOKED,	"ADMIN_REVOKED" }, \
246247c01ffSChuck Lever 		{ NFS4ERR_BACK_CHAN_BUSY,	"BACK_CHAN_BUSY" }, \
247247c01ffSChuck Lever 		{ NFS4ERR_BADCHAR,		"BADCHAR" }, \
248247c01ffSChuck Lever 		{ NFS4ERR_BADHANDLE,		"BADHANDLE" }, \
249247c01ffSChuck Lever 		{ NFS4ERR_BADIOMODE,		"BADIOMODE" }, \
250247c01ffSChuck Lever 		{ NFS4ERR_BADLAYOUT,		"BADLAYOUT" }, \
251247c01ffSChuck Lever 		{ NFS4ERR_BADLABEL,		"BADLABEL" }, \
252247c01ffSChuck Lever 		{ NFS4ERR_BADNAME,		"BADNAME" }, \
253247c01ffSChuck Lever 		{ NFS4ERR_BADOWNER,		"BADOWNER" }, \
254247c01ffSChuck Lever 		{ NFS4ERR_BADSESSION,		"BADSESSION" }, \
255247c01ffSChuck Lever 		{ NFS4ERR_BADSLOT,		"BADSLOT" }, \
256247c01ffSChuck Lever 		{ NFS4ERR_BADTYPE,		"BADTYPE" }, \
257247c01ffSChuck Lever 		{ NFS4ERR_BADXDR,		"BADXDR" }, \
258247c01ffSChuck Lever 		{ NFS4ERR_BAD_COOKIE,		"BAD_COOKIE" }, \
259247c01ffSChuck Lever 		{ NFS4ERR_BAD_HIGH_SLOT,	"BAD_HIGH_SLOT" }, \
260247c01ffSChuck Lever 		{ NFS4ERR_BAD_RANGE,		"BAD_RANGE" }, \
261247c01ffSChuck Lever 		{ NFS4ERR_BAD_SEQID,		"BAD_SEQID" }, \
262247c01ffSChuck Lever 		{ NFS4ERR_BAD_SESSION_DIGEST,	"BAD_SESSION_DIGEST" }, \
263247c01ffSChuck Lever 		{ NFS4ERR_BAD_STATEID,		"BAD_STATEID" }, \
264247c01ffSChuck Lever 		{ NFS4ERR_CB_PATH_DOWN,		"CB_PATH_DOWN" }, \
265247c01ffSChuck Lever 		{ NFS4ERR_CLID_INUSE,		"CLID_INUSE" }, \
266247c01ffSChuck Lever 		{ NFS4ERR_CLIENTID_BUSY,	"CLIENTID_BUSY" }, \
267247c01ffSChuck Lever 		{ NFS4ERR_COMPLETE_ALREADY,	"COMPLETE_ALREADY" }, \
268247c01ffSChuck Lever 		{ NFS4ERR_CONN_NOT_BOUND_TO_SESSION, "CONN_NOT_BOUND_TO_SESSION" }, \
269247c01ffSChuck Lever 		{ NFS4ERR_DEADLOCK,		"DEADLOCK" }, \
270247c01ffSChuck Lever 		{ NFS4ERR_DEADSESSION,		"DEAD_SESSION" }, \
271247c01ffSChuck Lever 		{ NFS4ERR_DELAY,		"DELAY" }, \
272247c01ffSChuck Lever 		{ NFS4ERR_DELEG_ALREADY_WANTED,	"DELEG_ALREADY_WANTED" }, \
273247c01ffSChuck Lever 		{ NFS4ERR_DELEG_REVOKED,	"DELEG_REVOKED" }, \
274247c01ffSChuck Lever 		{ NFS4ERR_DENIED,		"DENIED" }, \
275247c01ffSChuck Lever 		{ NFS4ERR_DIRDELEG_UNAVAIL,	"DIRDELEG_UNAVAIL" }, \
276247c01ffSChuck Lever 		{ NFS4ERR_DQUOT,		"DQUOT" }, \
277247c01ffSChuck Lever 		{ NFS4ERR_ENCR_ALG_UNSUPP,	"ENCR_ALG_UNSUPP" }, \
278247c01ffSChuck Lever 		{ NFS4ERR_EXIST,		"EXIST" }, \
279247c01ffSChuck Lever 		{ NFS4ERR_EXPIRED,		"EXPIRED" }, \
280247c01ffSChuck Lever 		{ NFS4ERR_FBIG,			"FBIG" }, \
281247c01ffSChuck Lever 		{ NFS4ERR_FHEXPIRED,		"FHEXPIRED" }, \
282247c01ffSChuck Lever 		{ NFS4ERR_FILE_OPEN,		"FILE_OPEN" }, \
283247c01ffSChuck Lever 		{ NFS4ERR_GRACE,		"GRACE" }, \
284247c01ffSChuck Lever 		{ NFS4ERR_HASH_ALG_UNSUPP,	"HASH_ALG_UNSUPP" }, \
285247c01ffSChuck Lever 		{ NFS4ERR_INVAL,		"INVAL" }, \
286247c01ffSChuck Lever 		{ NFS4ERR_IO,			"IO" }, \
287247c01ffSChuck Lever 		{ NFS4ERR_ISDIR,		"ISDIR" }, \
288247c01ffSChuck Lever 		{ NFS4ERR_LAYOUTTRYLATER,	"LAYOUTTRYLATER" }, \
289247c01ffSChuck Lever 		{ NFS4ERR_LAYOUTUNAVAILABLE,	"LAYOUTUNAVAILABLE" }, \
290247c01ffSChuck Lever 		{ NFS4ERR_LEASE_MOVED,		"LEASE_MOVED" }, \
291247c01ffSChuck Lever 		{ NFS4ERR_LOCKED,		"LOCKED" }, \
292247c01ffSChuck Lever 		{ NFS4ERR_LOCKS_HELD,		"LOCKS_HELD" }, \
293247c01ffSChuck Lever 		{ NFS4ERR_LOCK_RANGE,		"LOCK_RANGE" }, \
294247c01ffSChuck Lever 		{ NFS4ERR_MINOR_VERS_MISMATCH,	"MINOR_VERS_MISMATCH" }, \
295247c01ffSChuck Lever 		{ NFS4ERR_MLINK,		"MLINK" }, \
296247c01ffSChuck Lever 		{ NFS4ERR_MOVED,		"MOVED" }, \
297247c01ffSChuck Lever 		{ NFS4ERR_NAMETOOLONG,		"NAMETOOLONG" }, \
298247c01ffSChuck Lever 		{ NFS4ERR_NOENT,		"NOENT" }, \
299247c01ffSChuck Lever 		{ NFS4ERR_NOFILEHANDLE,		"NOFILEHANDLE" }, \
300247c01ffSChuck Lever 		{ NFS4ERR_NOMATCHING_LAYOUT,	"NOMATCHING_LAYOUT" }, \
301247c01ffSChuck Lever 		{ NFS4ERR_NOSPC,		"NOSPC" }, \
302247c01ffSChuck Lever 		{ NFS4ERR_NOTDIR,		"NOTDIR" }, \
303247c01ffSChuck Lever 		{ NFS4ERR_NOTEMPTY,		"NOTEMPTY" }, \
304247c01ffSChuck Lever 		{ NFS4ERR_NOTSUPP,		"NOTSUPP" }, \
305247c01ffSChuck Lever 		{ NFS4ERR_NOT_ONLY_OP,		"NOT_ONLY_OP" }, \
306247c01ffSChuck Lever 		{ NFS4ERR_NOT_SAME,		"NOT_SAME" }, \
307247c01ffSChuck Lever 		{ NFS4ERR_NO_GRACE,		"NO_GRACE" }, \
308247c01ffSChuck Lever 		{ NFS4ERR_NXIO,			"NXIO" }, \
309247c01ffSChuck Lever 		{ NFS4ERR_OLD_STATEID,		"OLD_STATEID" }, \
310247c01ffSChuck Lever 		{ NFS4ERR_OPENMODE,		"OPENMODE" }, \
311247c01ffSChuck Lever 		{ NFS4ERR_OP_ILLEGAL,		"OP_ILLEGAL" }, \
312247c01ffSChuck Lever 		{ NFS4ERR_OP_NOT_IN_SESSION,	"OP_NOT_IN_SESSION" }, \
313247c01ffSChuck Lever 		{ NFS4ERR_PERM,			"PERM" }, \
314247c01ffSChuck Lever 		{ NFS4ERR_PNFS_IO_HOLE,		"PNFS_IO_HOLE" }, \
315247c01ffSChuck Lever 		{ NFS4ERR_PNFS_NO_LAYOUT,	"PNFS_NO_LAYOUT" }, \
316247c01ffSChuck Lever 		{ NFS4ERR_RECALLCONFLICT,	"RECALLCONFLICT" }, \
317247c01ffSChuck Lever 		{ NFS4ERR_RECLAIM_BAD,		"RECLAIM_BAD" }, \
318247c01ffSChuck Lever 		{ NFS4ERR_RECLAIM_CONFLICT,	"RECLAIM_CONFLICT" }, \
319247c01ffSChuck Lever 		{ NFS4ERR_REJECT_DELEG,		"REJECT_DELEG" }, \
320247c01ffSChuck Lever 		{ NFS4ERR_REP_TOO_BIG,		"REP_TOO_BIG" }, \
321247c01ffSChuck Lever 		{ NFS4ERR_REP_TOO_BIG_TO_CACHE,	"REP_TOO_BIG_TO_CACHE" }, \
322247c01ffSChuck Lever 		{ NFS4ERR_REQ_TOO_BIG,		"REQ_TOO_BIG" }, \
323247c01ffSChuck Lever 		{ NFS4ERR_RESOURCE,		"RESOURCE" }, \
324247c01ffSChuck Lever 		{ NFS4ERR_RESTOREFH,		"RESTOREFH" }, \
325247c01ffSChuck Lever 		{ NFS4ERR_RETRY_UNCACHED_REP,	"RETRY_UNCACHED_REP" }, \
326247c01ffSChuck Lever 		{ NFS4ERR_RETURNCONFLICT,	"RETURNCONFLICT" }, \
327247c01ffSChuck Lever 		{ NFS4ERR_ROFS,			"ROFS" }, \
328247c01ffSChuck Lever 		{ NFS4ERR_SAME,			"SAME" }, \
329247c01ffSChuck Lever 		{ NFS4ERR_SHARE_DENIED,		"SHARE_DENIED" }, \
330247c01ffSChuck Lever 		{ NFS4ERR_SEQUENCE_POS,		"SEQUENCE_POS" }, \
331247c01ffSChuck Lever 		{ NFS4ERR_SEQ_FALSE_RETRY,	"SEQ_FALSE_RETRY" }, \
332247c01ffSChuck Lever 		{ NFS4ERR_SEQ_MISORDERED,	"SEQ_MISORDERED" }, \
333247c01ffSChuck Lever 		{ NFS4ERR_SERVERFAULT,		"SERVERFAULT" }, \
334247c01ffSChuck Lever 		{ NFS4ERR_STALE,		"STALE" }, \
335247c01ffSChuck Lever 		{ NFS4ERR_STALE_CLIENTID,	"STALE_CLIENTID" }, \
336247c01ffSChuck Lever 		{ NFS4ERR_STALE_STATEID,	"STALE_STATEID" }, \
337247c01ffSChuck Lever 		{ NFS4ERR_SYMLINK,		"SYMLINK" }, \
338247c01ffSChuck Lever 		{ NFS4ERR_TOOSMALL,		"TOOSMALL" }, \
339247c01ffSChuck Lever 		{ NFS4ERR_TOO_MANY_OPS,		"TOO_MANY_OPS" }, \
340247c01ffSChuck Lever 		{ NFS4ERR_UNKNOWN_LAYOUTTYPE,	"UNKNOWN_LAYOUTTYPE" }, \
341247c01ffSChuck Lever 		{ NFS4ERR_UNSAFE_COMPOUND,	"UNSAFE_COMPOUND" }, \
342247c01ffSChuck Lever 		{ NFS4ERR_WRONGSEC,		"WRONGSEC" }, \
343247c01ffSChuck Lever 		{ NFS4ERR_WRONG_CRED,		"WRONG_CRED" }, \
344247c01ffSChuck Lever 		{ NFS4ERR_WRONG_TYPE,		"WRONG_TYPE" }, \
345247c01ffSChuck Lever 		{ NFS4ERR_XDEV,			"XDEV" }, \
346247c01ffSChuck Lever 		/* ***** Internal to Linux NFS client ***** */ \
347247c01ffSChuck Lever 		{ NFS4ERR_RESET_TO_MDS,		"RESET_TO_MDS" }, \
348247c01ffSChuck Lever 		{ NFS4ERR_RESET_TO_PNFS,	"RESET_TO_PNFS" })
349247c01ffSChuck Lever 
350247c01ffSChuck Lever #define show_nfs4_verifier(x) \
351247c01ffSChuck Lever 	__print_hex_str(x, NFS4_VERIFIER_SIZE)
352247c01ffSChuck Lever 
353247c01ffSChuck Lever TRACE_DEFINE_ENUM(IOMODE_READ);
354247c01ffSChuck Lever TRACE_DEFINE_ENUM(IOMODE_RW);
355247c01ffSChuck Lever TRACE_DEFINE_ENUM(IOMODE_ANY);
356247c01ffSChuck Lever 
357247c01ffSChuck Lever #define show_pnfs_layout_iomode(x) \
358247c01ffSChuck Lever 	__print_symbolic(x, \
359247c01ffSChuck Lever 		{ IOMODE_READ,			"READ" }, \
360247c01ffSChuck Lever 		{ IOMODE_RW,			"RW" }, \
361247c01ffSChuck Lever 		{ IOMODE_ANY,			"ANY" })
362247c01ffSChuck Lever 
363*638593beSDai Ngo #define show_rca_mask(x) \
364*638593beSDai Ngo 	__print_flags(x, "|", \
365*638593beSDai Ngo 		{ BIT(RCA4_TYPE_MASK_RDATA_DLG),	"RDATA_DLG" }, \
366*638593beSDai Ngo 		{ BIT(RCA4_TYPE_MASK_WDATA_DLG),	"WDATA_DLG" }, \
367*638593beSDai Ngo 		{ BIT(RCA4_TYPE_MASK_DIR_DLG),		"DIR_DLG" }, \
368*638593beSDai Ngo 		{ BIT(RCA4_TYPE_MASK_FILE_LAYOUT),	"FILE_LAYOUT" }, \
369*638593beSDai Ngo 		{ BIT(RCA4_TYPE_MASK_BLK_LAYOUT),	"BLK_LAYOUT" }, \
370*638593beSDai Ngo 		{ BIT(RCA4_TYPE_MASK_OBJ_LAYOUT_MIN),	"OBJ_LAYOUT_MIN" }, \
371*638593beSDai Ngo 		{ BIT(RCA4_TYPE_MASK_OBJ_LAYOUT_MAX),	"OBJ_LAYOUT_MAX" }, \
372*638593beSDai Ngo 		{ BIT(RCA4_TYPE_MASK_OTHER_LAYOUT_MIN),	"OTHER_LAYOUT_MIN" }, \
373*638593beSDai Ngo 		{ BIT(RCA4_TYPE_MASK_OTHER_LAYOUT_MAX),	"OTHER_LAYOUT_MAX" })
374*638593beSDai Ngo 
375247c01ffSChuck Lever #define show_nfs4_seq4_status(x) \
376247c01ffSChuck Lever 	__print_flags(x, "|", \
377247c01ffSChuck Lever 		{ SEQ4_STATUS_CB_PATH_DOWN,		"CB_PATH_DOWN" }, \
378247c01ffSChuck Lever 		{ SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRING,	"CB_GSS_CONTEXTS_EXPIRING" }, \
379247c01ffSChuck Lever 		{ SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRED,	"CB_GSS_CONTEXTS_EXPIRED" }, \
380247c01ffSChuck Lever 		{ SEQ4_STATUS_EXPIRED_ALL_STATE_REVOKED, "EXPIRED_ALL_STATE_REVOKED" }, \
381247c01ffSChuck Lever 		{ SEQ4_STATUS_EXPIRED_SOME_STATE_REVOKED, "EXPIRED_SOME_STATE_REVOKED" }, \
382247c01ffSChuck Lever 		{ SEQ4_STATUS_ADMIN_STATE_REVOKED,	"ADMIN_STATE_REVOKED" }, \
383247c01ffSChuck Lever 		{ SEQ4_STATUS_RECALLABLE_STATE_REVOKED,	"RECALLABLE_STATE_REVOKED" }, \
384247c01ffSChuck Lever 		{ SEQ4_STATUS_LEASE_MOVED,		"LEASE_MOVED" }, \
385247c01ffSChuck Lever 		{ SEQ4_STATUS_RESTART_RECLAIM_NEEDED,	"RESTART_RECLAIM_NEEDED" }, \
386247c01ffSChuck Lever 		{ SEQ4_STATUS_CB_PATH_DOWN_SESSION,	"CB_PATH_DOWN_SESSION" }, \
387247c01ffSChuck Lever 		{ SEQ4_STATUS_BACKCHANNEL_FAULT,	"BACKCHANNEL_FAULT" })
388