162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Display helpers for NFS protocol elements
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Author: Chuck Lever <chuck.lever@oracle.com>
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci * Copyright (c) 2020, Oracle and/or its affiliates.
862306a36Sopenharmony_ci */
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#include <linux/nfs.h>
1162306a36Sopenharmony_ci#include <linux/nfs4.h>
1262306a36Sopenharmony_ci#include <uapi/linux/nfs.h>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS_OK);
1562306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_PERM);
1662306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_NOENT);
1762306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_IO);
1862306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_NXIO);
1962306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_EAGAIN);
2062306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_ACCES);
2162306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_EXIST);
2262306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_XDEV);
2362306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_NODEV);
2462306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_NOTDIR);
2562306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_ISDIR);
2662306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_INVAL);
2762306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_FBIG);
2862306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_NOSPC);
2962306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_ROFS);
3062306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_MLINK);
3162306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_OPNOTSUPP);
3262306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_NAMETOOLONG);
3362306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_NOTEMPTY);
3462306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_DQUOT);
3562306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_STALE);
3662306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_REMOTE);
3762306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_WFLUSH);
3862306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_BADHANDLE);
3962306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_NOT_SYNC);
4062306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_BAD_COOKIE);
4162306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_NOTSUPP);
4262306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_TOOSMALL);
4362306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_SERVERFAULT);
4462306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_BADTYPE);
4562306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFSERR_JUKEBOX);
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci#define show_nfs_status(x) \
4862306a36Sopenharmony_ci	__print_symbolic(x, \
4962306a36Sopenharmony_ci		{ NFS_OK,			"OK" }, \
5062306a36Sopenharmony_ci		{ NFSERR_PERM,			"PERM" }, \
5162306a36Sopenharmony_ci		{ NFSERR_NOENT,			"NOENT" }, \
5262306a36Sopenharmony_ci		{ NFSERR_IO,			"IO" }, \
5362306a36Sopenharmony_ci		{ NFSERR_NXIO,			"NXIO" }, \
5462306a36Sopenharmony_ci		{ ECHILD,			"CHILD" }, \
5562306a36Sopenharmony_ci		{ NFSERR_EAGAIN,		"AGAIN" }, \
5662306a36Sopenharmony_ci		{ NFSERR_ACCES,			"ACCES" }, \
5762306a36Sopenharmony_ci		{ NFSERR_EXIST,			"EXIST" }, \
5862306a36Sopenharmony_ci		{ NFSERR_XDEV,			"XDEV" }, \
5962306a36Sopenharmony_ci		{ NFSERR_NODEV,			"NODEV" }, \
6062306a36Sopenharmony_ci		{ NFSERR_NOTDIR,		"NOTDIR" }, \
6162306a36Sopenharmony_ci		{ NFSERR_ISDIR,			"ISDIR" }, \
6262306a36Sopenharmony_ci		{ NFSERR_INVAL,			"INVAL" }, \
6362306a36Sopenharmony_ci		{ NFSERR_FBIG,			"FBIG" }, \
6462306a36Sopenharmony_ci		{ NFSERR_NOSPC,			"NOSPC" }, \
6562306a36Sopenharmony_ci		{ NFSERR_ROFS,			"ROFS" }, \
6662306a36Sopenharmony_ci		{ NFSERR_MLINK,			"MLINK" }, \
6762306a36Sopenharmony_ci		{ NFSERR_OPNOTSUPP,		"OPNOTSUPP" }, \
6862306a36Sopenharmony_ci		{ NFSERR_NAMETOOLONG,		"NAMETOOLONG" }, \
6962306a36Sopenharmony_ci		{ NFSERR_NOTEMPTY,		"NOTEMPTY" }, \
7062306a36Sopenharmony_ci		{ NFSERR_DQUOT,			"DQUOT" }, \
7162306a36Sopenharmony_ci		{ NFSERR_STALE,			"STALE" }, \
7262306a36Sopenharmony_ci		{ NFSERR_REMOTE,		"REMOTE" }, \
7362306a36Sopenharmony_ci		{ NFSERR_WFLUSH,		"WFLUSH" }, \
7462306a36Sopenharmony_ci		{ NFSERR_BADHANDLE,		"BADHANDLE" }, \
7562306a36Sopenharmony_ci		{ NFSERR_NOT_SYNC,		"NOTSYNC" }, \
7662306a36Sopenharmony_ci		{ NFSERR_BAD_COOKIE,		"BADCOOKIE" }, \
7762306a36Sopenharmony_ci		{ NFSERR_NOTSUPP,		"NOTSUPP" }, \
7862306a36Sopenharmony_ci		{ NFSERR_TOOSMALL,		"TOOSMALL" }, \
7962306a36Sopenharmony_ci		{ NFSERR_SERVERFAULT,		"REMOTEIO" }, \
8062306a36Sopenharmony_ci		{ NFSERR_BADTYPE,		"BADTYPE" }, \
8162306a36Sopenharmony_ci		{ NFSERR_JUKEBOX,		"JUKEBOX" })
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS_UNSTABLE);
8462306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS_DATA_SYNC);
8562306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS_FILE_SYNC);
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci#define show_nfs_stable_how(x) \
8862306a36Sopenharmony_ci	__print_symbolic(x, \
8962306a36Sopenharmony_ci		{ NFS_UNSTABLE,			"UNSTABLE" }, \
9062306a36Sopenharmony_ci		{ NFS_DATA_SYNC,		"DATA_SYNC" }, \
9162306a36Sopenharmony_ci		{ NFS_FILE_SYNC,		"FILE_SYNC" })
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4_OK);
9462306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_ACCESS);
9562306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_ATTRNOTSUPP);
9662306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_ADMIN_REVOKED);
9762306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_BACK_CHAN_BUSY);
9862306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_BADCHAR);
9962306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_BADHANDLE);
10062306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_BADIOMODE);
10162306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_BADLAYOUT);
10262306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_BADLABEL);
10362306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_BADNAME);
10462306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_BADOWNER);
10562306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_BADSESSION);
10662306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_BADSLOT);
10762306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_BADTYPE);
10862306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_BADXDR);
10962306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_BAD_COOKIE);
11062306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_BAD_HIGH_SLOT);
11162306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_BAD_RANGE);
11262306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_BAD_SEQID);
11362306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_BAD_SESSION_DIGEST);
11462306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_BAD_STATEID);
11562306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_CB_PATH_DOWN);
11662306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_CLID_INUSE);
11762306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_CLIENTID_BUSY);
11862306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_COMPLETE_ALREADY);
11962306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_CONN_NOT_BOUND_TO_SESSION);
12062306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_DEADLOCK);
12162306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_DEADSESSION);
12262306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_DELAY);
12362306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_DELEG_ALREADY_WANTED);
12462306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_DELEG_REVOKED);
12562306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_DENIED);
12662306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_DIRDELEG_UNAVAIL);
12762306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_DQUOT);
12862306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_ENCR_ALG_UNSUPP);
12962306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_EXIST);
13062306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_EXPIRED);
13162306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_FBIG);
13262306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_FHEXPIRED);
13362306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_FILE_OPEN);
13462306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_GRACE);
13562306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_HASH_ALG_UNSUPP);
13662306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_INVAL);
13762306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_IO);
13862306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_ISDIR);
13962306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_LAYOUTTRYLATER);
14062306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_LAYOUTUNAVAILABLE);
14162306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_LEASE_MOVED);
14262306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_LOCKED);
14362306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_LOCKS_HELD);
14462306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_LOCK_RANGE);
14562306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_MINOR_VERS_MISMATCH);
14662306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_MLINK);
14762306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_MOVED);
14862306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_NAMETOOLONG);
14962306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_NOENT);
15062306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_NOFILEHANDLE);
15162306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_NOMATCHING_LAYOUT);
15262306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_NOSPC);
15362306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_NOTDIR);
15462306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_NOTEMPTY);
15562306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_NOTSUPP);
15662306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_NOT_ONLY_OP);
15762306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_NOT_SAME);
15862306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_NO_GRACE);
15962306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_NXIO);
16062306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_OLD_STATEID);
16162306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_OPENMODE);
16262306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_OP_ILLEGAL);
16362306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_OP_NOT_IN_SESSION);
16462306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_PERM);
16562306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_PNFS_IO_HOLE);
16662306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_PNFS_NO_LAYOUT);
16762306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_RECALLCONFLICT);
16862306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_RECLAIM_BAD);
16962306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_RECLAIM_CONFLICT);
17062306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_REJECT_DELEG);
17162306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_REP_TOO_BIG);
17262306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_REP_TOO_BIG_TO_CACHE);
17362306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_REQ_TOO_BIG);
17462306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_RESOURCE);
17562306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_RESTOREFH);
17662306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_RETRY_UNCACHED_REP);
17762306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_RETURNCONFLICT);
17862306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_ROFS);
17962306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_SAME);
18062306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_SHARE_DENIED);
18162306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_SEQUENCE_POS);
18262306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_SEQ_FALSE_RETRY);
18362306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_SEQ_MISORDERED);
18462306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_SERVERFAULT);
18562306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_STALE);
18662306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_STALE_CLIENTID);
18762306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_STALE_STATEID);
18862306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_SYMLINK);
18962306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_TOOSMALL);
19062306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_TOO_MANY_OPS);
19162306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_UNKNOWN_LAYOUTTYPE);
19262306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_UNSAFE_COMPOUND);
19362306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_WRONGSEC);
19462306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_WRONG_CRED);
19562306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_WRONG_TYPE);
19662306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_XDEV);
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_RESET_TO_MDS);
19962306a36Sopenharmony_ciTRACE_DEFINE_ENUM(NFS4ERR_RESET_TO_PNFS);
20062306a36Sopenharmony_ci
20162306a36Sopenharmony_ci#define show_nfs4_status(x) \
20262306a36Sopenharmony_ci	__print_symbolic(x, \
20362306a36Sopenharmony_ci		{ NFS4_OK,			"OK" }, \
20462306a36Sopenharmony_ci		{ EPERM,			"EPERM" }, \
20562306a36Sopenharmony_ci		{ ENOENT,			"ENOENT" }, \
20662306a36Sopenharmony_ci		{ EIO,				"EIO" }, \
20762306a36Sopenharmony_ci		{ ENXIO,			"ENXIO" }, \
20862306a36Sopenharmony_ci		{ EACCES,			"EACCES" }, \
20962306a36Sopenharmony_ci		{ EEXIST,			"EEXIST" }, \
21062306a36Sopenharmony_ci		{ EXDEV,			"EXDEV" }, \
21162306a36Sopenharmony_ci		{ ENOTDIR,			"ENOTDIR" }, \
21262306a36Sopenharmony_ci		{ EISDIR,			"EISDIR" }, \
21362306a36Sopenharmony_ci		{ EFBIG,			"EFBIG" }, \
21462306a36Sopenharmony_ci		{ ENOSPC,			"ENOSPC" }, \
21562306a36Sopenharmony_ci		{ EROFS,			"EROFS" }, \
21662306a36Sopenharmony_ci		{ EMLINK,			"EMLINK" }, \
21762306a36Sopenharmony_ci		{ ENAMETOOLONG,			"ENAMETOOLONG" }, \
21862306a36Sopenharmony_ci		{ ENOTEMPTY,			"ENOTEMPTY" }, \
21962306a36Sopenharmony_ci		{ EDQUOT,			"EDQUOT" }, \
22062306a36Sopenharmony_ci		{ ESTALE,			"ESTALE" }, \
22162306a36Sopenharmony_ci		{ EBADHANDLE,			"EBADHANDLE" }, \
22262306a36Sopenharmony_ci		{ EBADCOOKIE,			"EBADCOOKIE" }, \
22362306a36Sopenharmony_ci		{ ENOTSUPP,			"ENOTSUPP" }, \
22462306a36Sopenharmony_ci		{ ETOOSMALL,			"ETOOSMALL" }, \
22562306a36Sopenharmony_ci		{ EREMOTEIO,			"EREMOTEIO" }, \
22662306a36Sopenharmony_ci		{ EBADTYPE,			"EBADTYPE" }, \
22762306a36Sopenharmony_ci		{ EAGAIN,			"EAGAIN" }, \
22862306a36Sopenharmony_ci		{ ELOOP,			"ELOOP" }, \
22962306a36Sopenharmony_ci		{ EOPNOTSUPP,			"EOPNOTSUPP" }, \
23062306a36Sopenharmony_ci		{ EDEADLK,			"EDEADLK" }, \
23162306a36Sopenharmony_ci		{ ENOMEM,			"ENOMEM" }, \
23262306a36Sopenharmony_ci		{ EKEYEXPIRED,			"EKEYEXPIRED" }, \
23362306a36Sopenharmony_ci		{ ETIMEDOUT,			"ETIMEDOUT" }, \
23462306a36Sopenharmony_ci		{ ERESTARTSYS,			"ERESTARTSYS" }, \
23562306a36Sopenharmony_ci		{ ECONNREFUSED,			"ECONNREFUSED" }, \
23662306a36Sopenharmony_ci		{ ECONNRESET,			"ECONNRESET" }, \
23762306a36Sopenharmony_ci		{ ENETUNREACH,			"ENETUNREACH" }, \
23862306a36Sopenharmony_ci		{ EHOSTUNREACH,			"EHOSTUNREACH" }, \
23962306a36Sopenharmony_ci		{ EHOSTDOWN,			"EHOSTDOWN" }, \
24062306a36Sopenharmony_ci		{ EPIPE,			"EPIPE" }, \
24162306a36Sopenharmony_ci		{ EPFNOSUPPORT,			"EPFNOSUPPORT" }, \
24262306a36Sopenharmony_ci		{ EPROTONOSUPPORT,		"EPROTONOSUPPORT" }, \
24362306a36Sopenharmony_ci		{ NFS4ERR_ACCESS,		"ACCESS" }, \
24462306a36Sopenharmony_ci		{ NFS4ERR_ATTRNOTSUPP,		"ATTRNOTSUPP" }, \
24562306a36Sopenharmony_ci		{ NFS4ERR_ADMIN_REVOKED,	"ADMIN_REVOKED" }, \
24662306a36Sopenharmony_ci		{ NFS4ERR_BACK_CHAN_BUSY,	"BACK_CHAN_BUSY" }, \
24762306a36Sopenharmony_ci		{ NFS4ERR_BADCHAR,		"BADCHAR" }, \
24862306a36Sopenharmony_ci		{ NFS4ERR_BADHANDLE,		"BADHANDLE" }, \
24962306a36Sopenharmony_ci		{ NFS4ERR_BADIOMODE,		"BADIOMODE" }, \
25062306a36Sopenharmony_ci		{ NFS4ERR_BADLAYOUT,		"BADLAYOUT" }, \
25162306a36Sopenharmony_ci		{ NFS4ERR_BADLABEL,		"BADLABEL" }, \
25262306a36Sopenharmony_ci		{ NFS4ERR_BADNAME,		"BADNAME" }, \
25362306a36Sopenharmony_ci		{ NFS4ERR_BADOWNER,		"BADOWNER" }, \
25462306a36Sopenharmony_ci		{ NFS4ERR_BADSESSION,		"BADSESSION" }, \
25562306a36Sopenharmony_ci		{ NFS4ERR_BADSLOT,		"BADSLOT" }, \
25662306a36Sopenharmony_ci		{ NFS4ERR_BADTYPE,		"BADTYPE" }, \
25762306a36Sopenharmony_ci		{ NFS4ERR_BADXDR,		"BADXDR" }, \
25862306a36Sopenharmony_ci		{ NFS4ERR_BAD_COOKIE,		"BAD_COOKIE" }, \
25962306a36Sopenharmony_ci		{ NFS4ERR_BAD_HIGH_SLOT,	"BAD_HIGH_SLOT" }, \
26062306a36Sopenharmony_ci		{ NFS4ERR_BAD_RANGE,		"BAD_RANGE" }, \
26162306a36Sopenharmony_ci		{ NFS4ERR_BAD_SEQID,		"BAD_SEQID" }, \
26262306a36Sopenharmony_ci		{ NFS4ERR_BAD_SESSION_DIGEST,	"BAD_SESSION_DIGEST" }, \
26362306a36Sopenharmony_ci		{ NFS4ERR_BAD_STATEID,		"BAD_STATEID" }, \
26462306a36Sopenharmony_ci		{ NFS4ERR_CB_PATH_DOWN,		"CB_PATH_DOWN" }, \
26562306a36Sopenharmony_ci		{ NFS4ERR_CLID_INUSE,		"CLID_INUSE" }, \
26662306a36Sopenharmony_ci		{ NFS4ERR_CLIENTID_BUSY,	"CLIENTID_BUSY" }, \
26762306a36Sopenharmony_ci		{ NFS4ERR_COMPLETE_ALREADY,	"COMPLETE_ALREADY" }, \
26862306a36Sopenharmony_ci		{ NFS4ERR_CONN_NOT_BOUND_TO_SESSION, "CONN_NOT_BOUND_TO_SESSION" }, \
26962306a36Sopenharmony_ci		{ NFS4ERR_DEADLOCK,		"DEADLOCK" }, \
27062306a36Sopenharmony_ci		{ NFS4ERR_DEADSESSION,		"DEAD_SESSION" }, \
27162306a36Sopenharmony_ci		{ NFS4ERR_DELAY,		"DELAY" }, \
27262306a36Sopenharmony_ci		{ NFS4ERR_DELEG_ALREADY_WANTED,	"DELEG_ALREADY_WANTED" }, \
27362306a36Sopenharmony_ci		{ NFS4ERR_DELEG_REVOKED,	"DELEG_REVOKED" }, \
27462306a36Sopenharmony_ci		{ NFS4ERR_DENIED,		"DENIED" }, \
27562306a36Sopenharmony_ci		{ NFS4ERR_DIRDELEG_UNAVAIL,	"DIRDELEG_UNAVAIL" }, \
27662306a36Sopenharmony_ci		{ NFS4ERR_DQUOT,		"DQUOT" }, \
27762306a36Sopenharmony_ci		{ NFS4ERR_ENCR_ALG_UNSUPP,	"ENCR_ALG_UNSUPP" }, \
27862306a36Sopenharmony_ci		{ NFS4ERR_EXIST,		"EXIST" }, \
27962306a36Sopenharmony_ci		{ NFS4ERR_EXPIRED,		"EXPIRED" }, \
28062306a36Sopenharmony_ci		{ NFS4ERR_FBIG,			"FBIG" }, \
28162306a36Sopenharmony_ci		{ NFS4ERR_FHEXPIRED,		"FHEXPIRED" }, \
28262306a36Sopenharmony_ci		{ NFS4ERR_FILE_OPEN,		"FILE_OPEN" }, \
28362306a36Sopenharmony_ci		{ NFS4ERR_GRACE,		"GRACE" }, \
28462306a36Sopenharmony_ci		{ NFS4ERR_HASH_ALG_UNSUPP,	"HASH_ALG_UNSUPP" }, \
28562306a36Sopenharmony_ci		{ NFS4ERR_INVAL,		"INVAL" }, \
28662306a36Sopenharmony_ci		{ NFS4ERR_IO,			"IO" }, \
28762306a36Sopenharmony_ci		{ NFS4ERR_ISDIR,		"ISDIR" }, \
28862306a36Sopenharmony_ci		{ NFS4ERR_LAYOUTTRYLATER,	"LAYOUTTRYLATER" }, \
28962306a36Sopenharmony_ci		{ NFS4ERR_LAYOUTUNAVAILABLE,	"LAYOUTUNAVAILABLE" }, \
29062306a36Sopenharmony_ci		{ NFS4ERR_LEASE_MOVED,		"LEASE_MOVED" }, \
29162306a36Sopenharmony_ci		{ NFS4ERR_LOCKED,		"LOCKED" }, \
29262306a36Sopenharmony_ci		{ NFS4ERR_LOCKS_HELD,		"LOCKS_HELD" }, \
29362306a36Sopenharmony_ci		{ NFS4ERR_LOCK_RANGE,		"LOCK_RANGE" }, \
29462306a36Sopenharmony_ci		{ NFS4ERR_MINOR_VERS_MISMATCH,	"MINOR_VERS_MISMATCH" }, \
29562306a36Sopenharmony_ci		{ NFS4ERR_MLINK,		"MLINK" }, \
29662306a36Sopenharmony_ci		{ NFS4ERR_MOVED,		"MOVED" }, \
29762306a36Sopenharmony_ci		{ NFS4ERR_NAMETOOLONG,		"NAMETOOLONG" }, \
29862306a36Sopenharmony_ci		{ NFS4ERR_NOENT,		"NOENT" }, \
29962306a36Sopenharmony_ci		{ NFS4ERR_NOFILEHANDLE,		"NOFILEHANDLE" }, \
30062306a36Sopenharmony_ci		{ NFS4ERR_NOMATCHING_LAYOUT,	"NOMATCHING_LAYOUT" }, \
30162306a36Sopenharmony_ci		{ NFS4ERR_NOSPC,		"NOSPC" }, \
30262306a36Sopenharmony_ci		{ NFS4ERR_NOTDIR,		"NOTDIR" }, \
30362306a36Sopenharmony_ci		{ NFS4ERR_NOTEMPTY,		"NOTEMPTY" }, \
30462306a36Sopenharmony_ci		{ NFS4ERR_NOTSUPP,		"NOTSUPP" }, \
30562306a36Sopenharmony_ci		{ NFS4ERR_NOT_ONLY_OP,		"NOT_ONLY_OP" }, \
30662306a36Sopenharmony_ci		{ NFS4ERR_NOT_SAME,		"NOT_SAME" }, \
30762306a36Sopenharmony_ci		{ NFS4ERR_NO_GRACE,		"NO_GRACE" }, \
30862306a36Sopenharmony_ci		{ NFS4ERR_NXIO,			"NXIO" }, \
30962306a36Sopenharmony_ci		{ NFS4ERR_OLD_STATEID,		"OLD_STATEID" }, \
31062306a36Sopenharmony_ci		{ NFS4ERR_OPENMODE,		"OPENMODE" }, \
31162306a36Sopenharmony_ci		{ NFS4ERR_OP_ILLEGAL,		"OP_ILLEGAL" }, \
31262306a36Sopenharmony_ci		{ NFS4ERR_OP_NOT_IN_SESSION,	"OP_NOT_IN_SESSION" }, \
31362306a36Sopenharmony_ci		{ NFS4ERR_PERM,			"PERM" }, \
31462306a36Sopenharmony_ci		{ NFS4ERR_PNFS_IO_HOLE,		"PNFS_IO_HOLE" }, \
31562306a36Sopenharmony_ci		{ NFS4ERR_PNFS_NO_LAYOUT,	"PNFS_NO_LAYOUT" }, \
31662306a36Sopenharmony_ci		{ NFS4ERR_RECALLCONFLICT,	"RECALLCONFLICT" }, \
31762306a36Sopenharmony_ci		{ NFS4ERR_RECLAIM_BAD,		"RECLAIM_BAD" }, \
31862306a36Sopenharmony_ci		{ NFS4ERR_RECLAIM_CONFLICT,	"RECLAIM_CONFLICT" }, \
31962306a36Sopenharmony_ci		{ NFS4ERR_REJECT_DELEG,		"REJECT_DELEG" }, \
32062306a36Sopenharmony_ci		{ NFS4ERR_REP_TOO_BIG,		"REP_TOO_BIG" }, \
32162306a36Sopenharmony_ci		{ NFS4ERR_REP_TOO_BIG_TO_CACHE,	"REP_TOO_BIG_TO_CACHE" }, \
32262306a36Sopenharmony_ci		{ NFS4ERR_REQ_TOO_BIG,		"REQ_TOO_BIG" }, \
32362306a36Sopenharmony_ci		{ NFS4ERR_RESOURCE,		"RESOURCE" }, \
32462306a36Sopenharmony_ci		{ NFS4ERR_RESTOREFH,		"RESTOREFH" }, \
32562306a36Sopenharmony_ci		{ NFS4ERR_RETRY_UNCACHED_REP,	"RETRY_UNCACHED_REP" }, \
32662306a36Sopenharmony_ci		{ NFS4ERR_RETURNCONFLICT,	"RETURNCONFLICT" }, \
32762306a36Sopenharmony_ci		{ NFS4ERR_ROFS,			"ROFS" }, \
32862306a36Sopenharmony_ci		{ NFS4ERR_SAME,			"SAME" }, \
32962306a36Sopenharmony_ci		{ NFS4ERR_SHARE_DENIED,		"SHARE_DENIED" }, \
33062306a36Sopenharmony_ci		{ NFS4ERR_SEQUENCE_POS,		"SEQUENCE_POS" }, \
33162306a36Sopenharmony_ci		{ NFS4ERR_SEQ_FALSE_RETRY,	"SEQ_FALSE_RETRY" }, \
33262306a36Sopenharmony_ci		{ NFS4ERR_SEQ_MISORDERED,	"SEQ_MISORDERED" }, \
33362306a36Sopenharmony_ci		{ NFS4ERR_SERVERFAULT,		"SERVERFAULT" }, \
33462306a36Sopenharmony_ci		{ NFS4ERR_STALE,		"STALE" }, \
33562306a36Sopenharmony_ci		{ NFS4ERR_STALE_CLIENTID,	"STALE_CLIENTID" }, \
33662306a36Sopenharmony_ci		{ NFS4ERR_STALE_STATEID,	"STALE_STATEID" }, \
33762306a36Sopenharmony_ci		{ NFS4ERR_SYMLINK,		"SYMLINK" }, \
33862306a36Sopenharmony_ci		{ NFS4ERR_TOOSMALL,		"TOOSMALL" }, \
33962306a36Sopenharmony_ci		{ NFS4ERR_TOO_MANY_OPS,		"TOO_MANY_OPS" }, \
34062306a36Sopenharmony_ci		{ NFS4ERR_UNKNOWN_LAYOUTTYPE,	"UNKNOWN_LAYOUTTYPE" }, \
34162306a36Sopenharmony_ci		{ NFS4ERR_UNSAFE_COMPOUND,	"UNSAFE_COMPOUND" }, \
34262306a36Sopenharmony_ci		{ NFS4ERR_WRONGSEC,		"WRONGSEC" }, \
34362306a36Sopenharmony_ci		{ NFS4ERR_WRONG_CRED,		"WRONG_CRED" }, \
34462306a36Sopenharmony_ci		{ NFS4ERR_WRONG_TYPE,		"WRONG_TYPE" }, \
34562306a36Sopenharmony_ci		{ NFS4ERR_XDEV,			"XDEV" }, \
34662306a36Sopenharmony_ci		/* ***** Internal to Linux NFS client ***** */ \
34762306a36Sopenharmony_ci		{ NFS4ERR_RESET_TO_MDS,		"RESET_TO_MDS" }, \
34862306a36Sopenharmony_ci		{ NFS4ERR_RESET_TO_PNFS,	"RESET_TO_PNFS" })
34962306a36Sopenharmony_ci
35062306a36Sopenharmony_ci#define show_nfs4_verifier(x) \
35162306a36Sopenharmony_ci	__print_hex_str(x, NFS4_VERIFIER_SIZE)
35262306a36Sopenharmony_ci
35362306a36Sopenharmony_ciTRACE_DEFINE_ENUM(IOMODE_READ);
35462306a36Sopenharmony_ciTRACE_DEFINE_ENUM(IOMODE_RW);
35562306a36Sopenharmony_ciTRACE_DEFINE_ENUM(IOMODE_ANY);
35662306a36Sopenharmony_ci
35762306a36Sopenharmony_ci#define show_pnfs_layout_iomode(x) \
35862306a36Sopenharmony_ci	__print_symbolic(x, \
35962306a36Sopenharmony_ci		{ IOMODE_READ,			"READ" }, \
36062306a36Sopenharmony_ci		{ IOMODE_RW,			"RW" }, \
36162306a36Sopenharmony_ci		{ IOMODE_ANY,			"ANY" })
36262306a36Sopenharmony_ci
36362306a36Sopenharmony_ci#define show_rca_mask(x) \
36462306a36Sopenharmony_ci	__print_flags(x, "|", \
36562306a36Sopenharmony_ci		{ BIT(RCA4_TYPE_MASK_RDATA_DLG),	"RDATA_DLG" }, \
36662306a36Sopenharmony_ci		{ BIT(RCA4_TYPE_MASK_WDATA_DLG),	"WDATA_DLG" }, \
36762306a36Sopenharmony_ci		{ BIT(RCA4_TYPE_MASK_DIR_DLG),		"DIR_DLG" }, \
36862306a36Sopenharmony_ci		{ BIT(RCA4_TYPE_MASK_FILE_LAYOUT),	"FILE_LAYOUT" }, \
36962306a36Sopenharmony_ci		{ BIT(RCA4_TYPE_MASK_BLK_LAYOUT),	"BLK_LAYOUT" }, \
37062306a36Sopenharmony_ci		{ BIT(RCA4_TYPE_MASK_OBJ_LAYOUT_MIN),	"OBJ_LAYOUT_MIN" }, \
37162306a36Sopenharmony_ci		{ BIT(RCA4_TYPE_MASK_OBJ_LAYOUT_MAX),	"OBJ_LAYOUT_MAX" }, \
37262306a36Sopenharmony_ci		{ BIT(RCA4_TYPE_MASK_OTHER_LAYOUT_MIN),	"OTHER_LAYOUT_MIN" }, \
37362306a36Sopenharmony_ci		{ BIT(RCA4_TYPE_MASK_OTHER_LAYOUT_MAX),	"OTHER_LAYOUT_MAX" })
37462306a36Sopenharmony_ci
37562306a36Sopenharmony_ci#define show_nfs4_seq4_status(x) \
37662306a36Sopenharmony_ci	__print_flags(x, "|", \
37762306a36Sopenharmony_ci		{ SEQ4_STATUS_CB_PATH_DOWN,		"CB_PATH_DOWN" }, \
37862306a36Sopenharmony_ci		{ SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRING,	"CB_GSS_CONTEXTS_EXPIRING" }, \
37962306a36Sopenharmony_ci		{ SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRED,	"CB_GSS_CONTEXTS_EXPIRED" }, \
38062306a36Sopenharmony_ci		{ SEQ4_STATUS_EXPIRED_ALL_STATE_REVOKED, "EXPIRED_ALL_STATE_REVOKED" }, \
38162306a36Sopenharmony_ci		{ SEQ4_STATUS_EXPIRED_SOME_STATE_REVOKED, "EXPIRED_SOME_STATE_REVOKED" }, \
38262306a36Sopenharmony_ci		{ SEQ4_STATUS_ADMIN_STATE_REVOKED,	"ADMIN_STATE_REVOKED" }, \
38362306a36Sopenharmony_ci		{ SEQ4_STATUS_RECALLABLE_STATE_REVOKED,	"RECALLABLE_STATE_REVOKED" }, \
38462306a36Sopenharmony_ci		{ SEQ4_STATUS_LEASE_MOVED,		"LEASE_MOVED" }, \
38562306a36Sopenharmony_ci		{ SEQ4_STATUS_RESTART_RECLAIM_NEEDED,	"RESTART_RECLAIM_NEEDED" }, \
38662306a36Sopenharmony_ci		{ SEQ4_STATUS_CB_PATH_DOWN_SESSION,	"CB_PATH_DOWN_SESSION" }, \
38762306a36Sopenharmony_ci		{ SEQ4_STATUS_BACKCHANNEL_FAULT,	"BACKCHANNEL_FAULT" })
388