Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * Display helpers for NFS protocol elements
0004  *
0005  * Author: Chuck Lever <chuck.lever@oracle.com>
0006  *
0007  * Copyright (c) 2020, Oracle and/or its affiliates.
0008  */
0009 
0010 #include <linux/nfs.h>
0011 #include <linux/nfs4.h>
0012 #include <uapi/linux/nfs.h>
0013 
0014 TRACE_DEFINE_ENUM(NFS_OK);
0015 TRACE_DEFINE_ENUM(NFSERR_PERM);
0016 TRACE_DEFINE_ENUM(NFSERR_NOENT);
0017 TRACE_DEFINE_ENUM(NFSERR_IO);
0018 TRACE_DEFINE_ENUM(NFSERR_NXIO);
0019 TRACE_DEFINE_ENUM(NFSERR_EAGAIN);
0020 TRACE_DEFINE_ENUM(NFSERR_ACCES);
0021 TRACE_DEFINE_ENUM(NFSERR_EXIST);
0022 TRACE_DEFINE_ENUM(NFSERR_XDEV);
0023 TRACE_DEFINE_ENUM(NFSERR_NODEV);
0024 TRACE_DEFINE_ENUM(NFSERR_NOTDIR);
0025 TRACE_DEFINE_ENUM(NFSERR_ISDIR);
0026 TRACE_DEFINE_ENUM(NFSERR_INVAL);
0027 TRACE_DEFINE_ENUM(NFSERR_FBIG);
0028 TRACE_DEFINE_ENUM(NFSERR_NOSPC);
0029 TRACE_DEFINE_ENUM(NFSERR_ROFS);
0030 TRACE_DEFINE_ENUM(NFSERR_MLINK);
0031 TRACE_DEFINE_ENUM(NFSERR_OPNOTSUPP);
0032 TRACE_DEFINE_ENUM(NFSERR_NAMETOOLONG);
0033 TRACE_DEFINE_ENUM(NFSERR_NOTEMPTY);
0034 TRACE_DEFINE_ENUM(NFSERR_DQUOT);
0035 TRACE_DEFINE_ENUM(NFSERR_STALE);
0036 TRACE_DEFINE_ENUM(NFSERR_REMOTE);
0037 TRACE_DEFINE_ENUM(NFSERR_WFLUSH);
0038 TRACE_DEFINE_ENUM(NFSERR_BADHANDLE);
0039 TRACE_DEFINE_ENUM(NFSERR_NOT_SYNC);
0040 TRACE_DEFINE_ENUM(NFSERR_BAD_COOKIE);
0041 TRACE_DEFINE_ENUM(NFSERR_NOTSUPP);
0042 TRACE_DEFINE_ENUM(NFSERR_TOOSMALL);
0043 TRACE_DEFINE_ENUM(NFSERR_SERVERFAULT);
0044 TRACE_DEFINE_ENUM(NFSERR_BADTYPE);
0045 TRACE_DEFINE_ENUM(NFSERR_JUKEBOX);
0046 
0047 #define show_nfs_status(x) \
0048     __print_symbolic(x, \
0049         { NFS_OK,           "OK" }, \
0050         { NFSERR_PERM,          "PERM" }, \
0051         { NFSERR_NOENT,         "NOENT" }, \
0052         { NFSERR_IO,            "IO" }, \
0053         { NFSERR_NXIO,          "NXIO" }, \
0054         { ECHILD,           "CHILD" }, \
0055         { NFSERR_EAGAIN,        "AGAIN" }, \
0056         { NFSERR_ACCES,         "ACCES" }, \
0057         { NFSERR_EXIST,         "EXIST" }, \
0058         { NFSERR_XDEV,          "XDEV" }, \
0059         { NFSERR_NODEV,         "NODEV" }, \
0060         { NFSERR_NOTDIR,        "NOTDIR" }, \
0061         { NFSERR_ISDIR,         "ISDIR" }, \
0062         { NFSERR_INVAL,         "INVAL" }, \
0063         { NFSERR_FBIG,          "FBIG" }, \
0064         { NFSERR_NOSPC,         "NOSPC" }, \
0065         { NFSERR_ROFS,          "ROFS" }, \
0066         { NFSERR_MLINK,         "MLINK" }, \
0067         { NFSERR_OPNOTSUPP,     "OPNOTSUPP" }, \
0068         { NFSERR_NAMETOOLONG,       "NAMETOOLONG" }, \
0069         { NFSERR_NOTEMPTY,      "NOTEMPTY" }, \
0070         { NFSERR_DQUOT,         "DQUOT" }, \
0071         { NFSERR_STALE,         "STALE" }, \
0072         { NFSERR_REMOTE,        "REMOTE" }, \
0073         { NFSERR_WFLUSH,        "WFLUSH" }, \
0074         { NFSERR_BADHANDLE,     "BADHANDLE" }, \
0075         { NFSERR_NOT_SYNC,      "NOTSYNC" }, \
0076         { NFSERR_BAD_COOKIE,        "BADCOOKIE" }, \
0077         { NFSERR_NOTSUPP,       "NOTSUPP" }, \
0078         { NFSERR_TOOSMALL,      "TOOSMALL" }, \
0079         { NFSERR_SERVERFAULT,       "REMOTEIO" }, \
0080         { NFSERR_BADTYPE,       "BADTYPE" }, \
0081         { NFSERR_JUKEBOX,       "JUKEBOX" })
0082 
0083 TRACE_DEFINE_ENUM(NFS_UNSTABLE);
0084 TRACE_DEFINE_ENUM(NFS_DATA_SYNC);
0085 TRACE_DEFINE_ENUM(NFS_FILE_SYNC);
0086 
0087 #define show_nfs_stable_how(x) \
0088     __print_symbolic(x, \
0089         { NFS_UNSTABLE,         "UNSTABLE" }, \
0090         { NFS_DATA_SYNC,        "DATA_SYNC" }, \
0091         { NFS_FILE_SYNC,        "FILE_SYNC" })
0092 
0093 TRACE_DEFINE_ENUM(NFS4_OK);
0094 TRACE_DEFINE_ENUM(NFS4ERR_ACCESS);
0095 TRACE_DEFINE_ENUM(NFS4ERR_ATTRNOTSUPP);
0096 TRACE_DEFINE_ENUM(NFS4ERR_ADMIN_REVOKED);
0097 TRACE_DEFINE_ENUM(NFS4ERR_BACK_CHAN_BUSY);
0098 TRACE_DEFINE_ENUM(NFS4ERR_BADCHAR);
0099 TRACE_DEFINE_ENUM(NFS4ERR_BADHANDLE);
0100 TRACE_DEFINE_ENUM(NFS4ERR_BADIOMODE);
0101 TRACE_DEFINE_ENUM(NFS4ERR_BADLAYOUT);
0102 TRACE_DEFINE_ENUM(NFS4ERR_BADLABEL);
0103 TRACE_DEFINE_ENUM(NFS4ERR_BADNAME);
0104 TRACE_DEFINE_ENUM(NFS4ERR_BADOWNER);
0105 TRACE_DEFINE_ENUM(NFS4ERR_BADSESSION);
0106 TRACE_DEFINE_ENUM(NFS4ERR_BADSLOT);
0107 TRACE_DEFINE_ENUM(NFS4ERR_BADTYPE);
0108 TRACE_DEFINE_ENUM(NFS4ERR_BADXDR);
0109 TRACE_DEFINE_ENUM(NFS4ERR_BAD_COOKIE);
0110 TRACE_DEFINE_ENUM(NFS4ERR_BAD_HIGH_SLOT);
0111 TRACE_DEFINE_ENUM(NFS4ERR_BAD_RANGE);
0112 TRACE_DEFINE_ENUM(NFS4ERR_BAD_SEQID);
0113 TRACE_DEFINE_ENUM(NFS4ERR_BAD_SESSION_DIGEST);
0114 TRACE_DEFINE_ENUM(NFS4ERR_BAD_STATEID);
0115 TRACE_DEFINE_ENUM(NFS4ERR_CB_PATH_DOWN);
0116 TRACE_DEFINE_ENUM(NFS4ERR_CLID_INUSE);
0117 TRACE_DEFINE_ENUM(NFS4ERR_CLIENTID_BUSY);
0118 TRACE_DEFINE_ENUM(NFS4ERR_COMPLETE_ALREADY);
0119 TRACE_DEFINE_ENUM(NFS4ERR_CONN_NOT_BOUND_TO_SESSION);
0120 TRACE_DEFINE_ENUM(NFS4ERR_DEADLOCK);
0121 TRACE_DEFINE_ENUM(NFS4ERR_DEADSESSION);
0122 TRACE_DEFINE_ENUM(NFS4ERR_DELAY);
0123 TRACE_DEFINE_ENUM(NFS4ERR_DELEG_ALREADY_WANTED);
0124 TRACE_DEFINE_ENUM(NFS4ERR_DELEG_REVOKED);
0125 TRACE_DEFINE_ENUM(NFS4ERR_DENIED);
0126 TRACE_DEFINE_ENUM(NFS4ERR_DIRDELEG_UNAVAIL);
0127 TRACE_DEFINE_ENUM(NFS4ERR_DQUOT);
0128 TRACE_DEFINE_ENUM(NFS4ERR_ENCR_ALG_UNSUPP);
0129 TRACE_DEFINE_ENUM(NFS4ERR_EXIST);
0130 TRACE_DEFINE_ENUM(NFS4ERR_EXPIRED);
0131 TRACE_DEFINE_ENUM(NFS4ERR_FBIG);
0132 TRACE_DEFINE_ENUM(NFS4ERR_FHEXPIRED);
0133 TRACE_DEFINE_ENUM(NFS4ERR_FILE_OPEN);
0134 TRACE_DEFINE_ENUM(NFS4ERR_GRACE);
0135 TRACE_DEFINE_ENUM(NFS4ERR_HASH_ALG_UNSUPP);
0136 TRACE_DEFINE_ENUM(NFS4ERR_INVAL);
0137 TRACE_DEFINE_ENUM(NFS4ERR_IO);
0138 TRACE_DEFINE_ENUM(NFS4ERR_ISDIR);
0139 TRACE_DEFINE_ENUM(NFS4ERR_LAYOUTTRYLATER);
0140 TRACE_DEFINE_ENUM(NFS4ERR_LAYOUTUNAVAILABLE);
0141 TRACE_DEFINE_ENUM(NFS4ERR_LEASE_MOVED);
0142 TRACE_DEFINE_ENUM(NFS4ERR_LOCKED);
0143 TRACE_DEFINE_ENUM(NFS4ERR_LOCKS_HELD);
0144 TRACE_DEFINE_ENUM(NFS4ERR_LOCK_RANGE);
0145 TRACE_DEFINE_ENUM(NFS4ERR_MINOR_VERS_MISMATCH);
0146 TRACE_DEFINE_ENUM(NFS4ERR_MLINK);
0147 TRACE_DEFINE_ENUM(NFS4ERR_MOVED);
0148 TRACE_DEFINE_ENUM(NFS4ERR_NAMETOOLONG);
0149 TRACE_DEFINE_ENUM(NFS4ERR_NOENT);
0150 TRACE_DEFINE_ENUM(NFS4ERR_NOFILEHANDLE);
0151 TRACE_DEFINE_ENUM(NFS4ERR_NOMATCHING_LAYOUT);
0152 TRACE_DEFINE_ENUM(NFS4ERR_NOSPC);
0153 TRACE_DEFINE_ENUM(NFS4ERR_NOTDIR);
0154 TRACE_DEFINE_ENUM(NFS4ERR_NOTEMPTY);
0155 TRACE_DEFINE_ENUM(NFS4ERR_NOTSUPP);
0156 TRACE_DEFINE_ENUM(NFS4ERR_NOT_ONLY_OP);
0157 TRACE_DEFINE_ENUM(NFS4ERR_NOT_SAME);
0158 TRACE_DEFINE_ENUM(NFS4ERR_NO_GRACE);
0159 TRACE_DEFINE_ENUM(NFS4ERR_NXIO);
0160 TRACE_DEFINE_ENUM(NFS4ERR_OLD_STATEID);
0161 TRACE_DEFINE_ENUM(NFS4ERR_OPENMODE);
0162 TRACE_DEFINE_ENUM(NFS4ERR_OP_ILLEGAL);
0163 TRACE_DEFINE_ENUM(NFS4ERR_OP_NOT_IN_SESSION);
0164 TRACE_DEFINE_ENUM(NFS4ERR_PERM);
0165 TRACE_DEFINE_ENUM(NFS4ERR_PNFS_IO_HOLE);
0166 TRACE_DEFINE_ENUM(NFS4ERR_PNFS_NO_LAYOUT);
0167 TRACE_DEFINE_ENUM(NFS4ERR_RECALLCONFLICT);
0168 TRACE_DEFINE_ENUM(NFS4ERR_RECLAIM_BAD);
0169 TRACE_DEFINE_ENUM(NFS4ERR_RECLAIM_CONFLICT);
0170 TRACE_DEFINE_ENUM(NFS4ERR_REJECT_DELEG);
0171 TRACE_DEFINE_ENUM(NFS4ERR_REP_TOO_BIG);
0172 TRACE_DEFINE_ENUM(NFS4ERR_REP_TOO_BIG_TO_CACHE);
0173 TRACE_DEFINE_ENUM(NFS4ERR_REQ_TOO_BIG);
0174 TRACE_DEFINE_ENUM(NFS4ERR_RESOURCE);
0175 TRACE_DEFINE_ENUM(NFS4ERR_RESTOREFH);
0176 TRACE_DEFINE_ENUM(NFS4ERR_RETRY_UNCACHED_REP);
0177 TRACE_DEFINE_ENUM(NFS4ERR_RETURNCONFLICT);
0178 TRACE_DEFINE_ENUM(NFS4ERR_ROFS);
0179 TRACE_DEFINE_ENUM(NFS4ERR_SAME);
0180 TRACE_DEFINE_ENUM(NFS4ERR_SHARE_DENIED);
0181 TRACE_DEFINE_ENUM(NFS4ERR_SEQUENCE_POS);
0182 TRACE_DEFINE_ENUM(NFS4ERR_SEQ_FALSE_RETRY);
0183 TRACE_DEFINE_ENUM(NFS4ERR_SEQ_MISORDERED);
0184 TRACE_DEFINE_ENUM(NFS4ERR_SERVERFAULT);
0185 TRACE_DEFINE_ENUM(NFS4ERR_STALE);
0186 TRACE_DEFINE_ENUM(NFS4ERR_STALE_CLIENTID);
0187 TRACE_DEFINE_ENUM(NFS4ERR_STALE_STATEID);
0188 TRACE_DEFINE_ENUM(NFS4ERR_SYMLINK);
0189 TRACE_DEFINE_ENUM(NFS4ERR_TOOSMALL);
0190 TRACE_DEFINE_ENUM(NFS4ERR_TOO_MANY_OPS);
0191 TRACE_DEFINE_ENUM(NFS4ERR_UNKNOWN_LAYOUTTYPE);
0192 TRACE_DEFINE_ENUM(NFS4ERR_UNSAFE_COMPOUND);
0193 TRACE_DEFINE_ENUM(NFS4ERR_WRONGSEC);
0194 TRACE_DEFINE_ENUM(NFS4ERR_WRONG_CRED);
0195 TRACE_DEFINE_ENUM(NFS4ERR_WRONG_TYPE);
0196 TRACE_DEFINE_ENUM(NFS4ERR_XDEV);
0197 
0198 TRACE_DEFINE_ENUM(NFS4ERR_RESET_TO_MDS);
0199 TRACE_DEFINE_ENUM(NFS4ERR_RESET_TO_PNFS);
0200 
0201 #define show_nfs4_status(x) \
0202     __print_symbolic(x, \
0203         { NFS4_OK,          "OK" }, \
0204         { EPERM,            "EPERM" }, \
0205         { ENOENT,           "ENOENT" }, \
0206         { EIO,              "EIO" }, \
0207         { ENXIO,            "ENXIO" }, \
0208         { EACCES,           "EACCES" }, \
0209         { EEXIST,           "EEXIST" }, \
0210         { EXDEV,            "EXDEV" }, \
0211         { ENOTDIR,          "ENOTDIR" }, \
0212         { EISDIR,           "EISDIR" }, \
0213         { EFBIG,            "EFBIG" }, \
0214         { ENOSPC,           "ENOSPC" }, \
0215         { EROFS,            "EROFS" }, \
0216         { EMLINK,           "EMLINK" }, \
0217         { ENAMETOOLONG,         "ENAMETOOLONG" }, \
0218         { ENOTEMPTY,            "ENOTEMPTY" }, \
0219         { EDQUOT,           "EDQUOT" }, \
0220         { ESTALE,           "ESTALE" }, \
0221         { EBADHANDLE,           "EBADHANDLE" }, \
0222         { EBADCOOKIE,           "EBADCOOKIE" }, \
0223         { ENOTSUPP,         "ENOTSUPP" }, \
0224         { ETOOSMALL,            "ETOOSMALL" }, \
0225         { EREMOTEIO,            "EREMOTEIO" }, \
0226         { EBADTYPE,         "EBADTYPE" }, \
0227         { EAGAIN,           "EAGAIN" }, \
0228         { ELOOP,            "ELOOP" }, \
0229         { EOPNOTSUPP,           "EOPNOTSUPP" }, \
0230         { EDEADLK,          "EDEADLK" }, \
0231         { ENOMEM,           "ENOMEM" }, \
0232         { EKEYEXPIRED,          "EKEYEXPIRED" }, \
0233         { ETIMEDOUT,            "ETIMEDOUT" }, \
0234         { ERESTARTSYS,          "ERESTARTSYS" }, \
0235         { ECONNREFUSED,         "ECONNREFUSED" }, \
0236         { ECONNRESET,           "ECONNRESET" }, \
0237         { ENETUNREACH,          "ENETUNREACH" }, \
0238         { EHOSTUNREACH,         "EHOSTUNREACH" }, \
0239         { EHOSTDOWN,            "EHOSTDOWN" }, \
0240         { EPIPE,            "EPIPE" }, \
0241         { EPFNOSUPPORT,         "EPFNOSUPPORT" }, \
0242         { EPROTONOSUPPORT,      "EPROTONOSUPPORT" }, \
0243         { NFS4ERR_ACCESS,       "ACCESS" }, \
0244         { NFS4ERR_ATTRNOTSUPP,      "ATTRNOTSUPP" }, \
0245         { NFS4ERR_ADMIN_REVOKED,    "ADMIN_REVOKED" }, \
0246         { NFS4ERR_BACK_CHAN_BUSY,   "BACK_CHAN_BUSY" }, \
0247         { NFS4ERR_BADCHAR,      "BADCHAR" }, \
0248         { NFS4ERR_BADHANDLE,        "BADHANDLE" }, \
0249         { NFS4ERR_BADIOMODE,        "BADIOMODE" }, \
0250         { NFS4ERR_BADLAYOUT,        "BADLAYOUT" }, \
0251         { NFS4ERR_BADLABEL,     "BADLABEL" }, \
0252         { NFS4ERR_BADNAME,      "BADNAME" }, \
0253         { NFS4ERR_BADOWNER,     "BADOWNER" }, \
0254         { NFS4ERR_BADSESSION,       "BADSESSION" }, \
0255         { NFS4ERR_BADSLOT,      "BADSLOT" }, \
0256         { NFS4ERR_BADTYPE,      "BADTYPE" }, \
0257         { NFS4ERR_BADXDR,       "BADXDR" }, \
0258         { NFS4ERR_BAD_COOKIE,       "BAD_COOKIE" }, \
0259         { NFS4ERR_BAD_HIGH_SLOT,    "BAD_HIGH_SLOT" }, \
0260         { NFS4ERR_BAD_RANGE,        "BAD_RANGE" }, \
0261         { NFS4ERR_BAD_SEQID,        "BAD_SEQID" }, \
0262         { NFS4ERR_BAD_SESSION_DIGEST,   "BAD_SESSION_DIGEST" }, \
0263         { NFS4ERR_BAD_STATEID,      "BAD_STATEID" }, \
0264         { NFS4ERR_CB_PATH_DOWN,     "CB_PATH_DOWN" }, \
0265         { NFS4ERR_CLID_INUSE,       "CLID_INUSE" }, \
0266         { NFS4ERR_CLIENTID_BUSY,    "CLIENTID_BUSY" }, \
0267         { NFS4ERR_COMPLETE_ALREADY, "COMPLETE_ALREADY" }, \
0268         { NFS4ERR_CONN_NOT_BOUND_TO_SESSION, "CONN_NOT_BOUND_TO_SESSION" }, \
0269         { NFS4ERR_DEADLOCK,     "DEADLOCK" }, \
0270         { NFS4ERR_DEADSESSION,      "DEAD_SESSION" }, \
0271         { NFS4ERR_DELAY,        "DELAY" }, \
0272         { NFS4ERR_DELEG_ALREADY_WANTED, "DELEG_ALREADY_WANTED" }, \
0273         { NFS4ERR_DELEG_REVOKED,    "DELEG_REVOKED" }, \
0274         { NFS4ERR_DENIED,       "DENIED" }, \
0275         { NFS4ERR_DIRDELEG_UNAVAIL, "DIRDELEG_UNAVAIL" }, \
0276         { NFS4ERR_DQUOT,        "DQUOT" }, \
0277         { NFS4ERR_ENCR_ALG_UNSUPP,  "ENCR_ALG_UNSUPP" }, \
0278         { NFS4ERR_EXIST,        "EXIST" }, \
0279         { NFS4ERR_EXPIRED,      "EXPIRED" }, \
0280         { NFS4ERR_FBIG,         "FBIG" }, \
0281         { NFS4ERR_FHEXPIRED,        "FHEXPIRED" }, \
0282         { NFS4ERR_FILE_OPEN,        "FILE_OPEN" }, \
0283         { NFS4ERR_GRACE,        "GRACE" }, \
0284         { NFS4ERR_HASH_ALG_UNSUPP,  "HASH_ALG_UNSUPP" }, \
0285         { NFS4ERR_INVAL,        "INVAL" }, \
0286         { NFS4ERR_IO,           "IO" }, \
0287         { NFS4ERR_ISDIR,        "ISDIR" }, \
0288         { NFS4ERR_LAYOUTTRYLATER,   "LAYOUTTRYLATER" }, \
0289         { NFS4ERR_LAYOUTUNAVAILABLE,    "LAYOUTUNAVAILABLE" }, \
0290         { NFS4ERR_LEASE_MOVED,      "LEASE_MOVED" }, \
0291         { NFS4ERR_LOCKED,       "LOCKED" }, \
0292         { NFS4ERR_LOCKS_HELD,       "LOCKS_HELD" }, \
0293         { NFS4ERR_LOCK_RANGE,       "LOCK_RANGE" }, \
0294         { NFS4ERR_MINOR_VERS_MISMATCH,  "MINOR_VERS_MISMATCH" }, \
0295         { NFS4ERR_MLINK,        "MLINK" }, \
0296         { NFS4ERR_MOVED,        "MOVED" }, \
0297         { NFS4ERR_NAMETOOLONG,      "NAMETOOLONG" }, \
0298         { NFS4ERR_NOENT,        "NOENT" }, \
0299         { NFS4ERR_NOFILEHANDLE,     "NOFILEHANDLE" }, \
0300         { NFS4ERR_NOMATCHING_LAYOUT,    "NOMATCHING_LAYOUT" }, \
0301         { NFS4ERR_NOSPC,        "NOSPC" }, \
0302         { NFS4ERR_NOTDIR,       "NOTDIR" }, \
0303         { NFS4ERR_NOTEMPTY,     "NOTEMPTY" }, \
0304         { NFS4ERR_NOTSUPP,      "NOTSUPP" }, \
0305         { NFS4ERR_NOT_ONLY_OP,      "NOT_ONLY_OP" }, \
0306         { NFS4ERR_NOT_SAME,     "NOT_SAME" }, \
0307         { NFS4ERR_NO_GRACE,     "NO_GRACE" }, \
0308         { NFS4ERR_NXIO,         "NXIO" }, \
0309         { NFS4ERR_OLD_STATEID,      "OLD_STATEID" }, \
0310         { NFS4ERR_OPENMODE,     "OPENMODE" }, \
0311         { NFS4ERR_OP_ILLEGAL,       "OP_ILLEGAL" }, \
0312         { NFS4ERR_OP_NOT_IN_SESSION,    "OP_NOT_IN_SESSION" }, \
0313         { NFS4ERR_PERM,         "PERM" }, \
0314         { NFS4ERR_PNFS_IO_HOLE,     "PNFS_IO_HOLE" }, \
0315         { NFS4ERR_PNFS_NO_LAYOUT,   "PNFS_NO_LAYOUT" }, \
0316         { NFS4ERR_RECALLCONFLICT,   "RECALLCONFLICT" }, \
0317         { NFS4ERR_RECLAIM_BAD,      "RECLAIM_BAD" }, \
0318         { NFS4ERR_RECLAIM_CONFLICT, "RECLAIM_CONFLICT" }, \
0319         { NFS4ERR_REJECT_DELEG,     "REJECT_DELEG" }, \
0320         { NFS4ERR_REP_TOO_BIG,      "REP_TOO_BIG" }, \
0321         { NFS4ERR_REP_TOO_BIG_TO_CACHE, "REP_TOO_BIG_TO_CACHE" }, \
0322         { NFS4ERR_REQ_TOO_BIG,      "REQ_TOO_BIG" }, \
0323         { NFS4ERR_RESOURCE,     "RESOURCE" }, \
0324         { NFS4ERR_RESTOREFH,        "RESTOREFH" }, \
0325         { NFS4ERR_RETRY_UNCACHED_REP,   "RETRY_UNCACHED_REP" }, \
0326         { NFS4ERR_RETURNCONFLICT,   "RETURNCONFLICT" }, \
0327         { NFS4ERR_ROFS,         "ROFS" }, \
0328         { NFS4ERR_SAME,         "SAME" }, \
0329         { NFS4ERR_SHARE_DENIED,     "SHARE_DENIED" }, \
0330         { NFS4ERR_SEQUENCE_POS,     "SEQUENCE_POS" }, \
0331         { NFS4ERR_SEQ_FALSE_RETRY,  "SEQ_FALSE_RETRY" }, \
0332         { NFS4ERR_SEQ_MISORDERED,   "SEQ_MISORDERED" }, \
0333         { NFS4ERR_SERVERFAULT,      "SERVERFAULT" }, \
0334         { NFS4ERR_STALE,        "STALE" }, \
0335         { NFS4ERR_STALE_CLIENTID,   "STALE_CLIENTID" }, \
0336         { NFS4ERR_STALE_STATEID,    "STALE_STATEID" }, \
0337         { NFS4ERR_SYMLINK,      "SYMLINK" }, \
0338         { NFS4ERR_TOOSMALL,     "TOOSMALL" }, \
0339         { NFS4ERR_TOO_MANY_OPS,     "TOO_MANY_OPS" }, \
0340         { NFS4ERR_UNKNOWN_LAYOUTTYPE,   "UNKNOWN_LAYOUTTYPE" }, \
0341         { NFS4ERR_UNSAFE_COMPOUND,  "UNSAFE_COMPOUND" }, \
0342         { NFS4ERR_WRONGSEC,     "WRONGSEC" }, \
0343         { NFS4ERR_WRONG_CRED,       "WRONG_CRED" }, \
0344         { NFS4ERR_WRONG_TYPE,       "WRONG_TYPE" }, \
0345         { NFS4ERR_XDEV,         "XDEV" }, \
0346         /* ***** Internal to Linux NFS client ***** */ \
0347         { NFS4ERR_RESET_TO_MDS,     "RESET_TO_MDS" }, \
0348         { NFS4ERR_RESET_TO_PNFS,    "RESET_TO_PNFS" })
0349 
0350 #define show_nfs4_verifier(x) \
0351     __print_hex_str(x, NFS4_VERIFIER_SIZE)
0352 
0353 TRACE_DEFINE_ENUM(IOMODE_READ);
0354 TRACE_DEFINE_ENUM(IOMODE_RW);
0355 TRACE_DEFINE_ENUM(IOMODE_ANY);
0356 
0357 #define show_pnfs_layout_iomode(x) \
0358     __print_symbolic(x, \
0359         { IOMODE_READ,          "READ" }, \
0360         { IOMODE_RW,            "RW" }, \
0361         { IOMODE_ANY,           "ANY" })
0362 
0363 #define show_nfs4_seq4_status(x) \
0364     __print_flags(x, "|", \
0365         { SEQ4_STATUS_CB_PATH_DOWN,     "CB_PATH_DOWN" }, \
0366         { SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRING, "CB_GSS_CONTEXTS_EXPIRING" }, \
0367         { SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRED,  "CB_GSS_CONTEXTS_EXPIRED" }, \
0368         { SEQ4_STATUS_EXPIRED_ALL_STATE_REVOKED, "EXPIRED_ALL_STATE_REVOKED" }, \
0369         { SEQ4_STATUS_EXPIRED_SOME_STATE_REVOKED, "EXPIRED_SOME_STATE_REVOKED" }, \
0370         { SEQ4_STATUS_ADMIN_STATE_REVOKED,  "ADMIN_STATE_REVOKED" }, \
0371         { SEQ4_STATUS_RECALLABLE_STATE_REVOKED, "RECALLABLE_STATE_REVOKED" }, \
0372         { SEQ4_STATUS_LEASE_MOVED,      "LEASE_MOVED" }, \
0373         { SEQ4_STATUS_RESTART_RECLAIM_NEEDED,   "RESTART_RECLAIM_NEEDED" }, \
0374         { SEQ4_STATUS_CB_PATH_DOWN_SESSION, "CB_PATH_DOWN_SESSION" }, \
0375         { SEQ4_STATUS_BACKCHANNEL_FAULT,    "BACKCHANNEL_FAULT" })