^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Copyright (c) 2013 Trond Myklebust <Trond.Myklebust@netapp.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #define TRACE_SYSTEM nfs4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #if !defined(_TRACE_NFS4_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #define _TRACE_NFS4_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) TRACE_DEFINE_ENUM(EPERM);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) TRACE_DEFINE_ENUM(ENOENT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) TRACE_DEFINE_ENUM(EIO);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) TRACE_DEFINE_ENUM(ENXIO);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) TRACE_DEFINE_ENUM(EACCES);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) TRACE_DEFINE_ENUM(EEXIST);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) TRACE_DEFINE_ENUM(EXDEV);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) TRACE_DEFINE_ENUM(ENOTDIR);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) TRACE_DEFINE_ENUM(EISDIR);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) TRACE_DEFINE_ENUM(EFBIG);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) TRACE_DEFINE_ENUM(ENOSPC);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) TRACE_DEFINE_ENUM(EROFS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) TRACE_DEFINE_ENUM(EMLINK);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) TRACE_DEFINE_ENUM(ENAMETOOLONG);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) TRACE_DEFINE_ENUM(ENOTEMPTY);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) TRACE_DEFINE_ENUM(EDQUOT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) TRACE_DEFINE_ENUM(ESTALE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) TRACE_DEFINE_ENUM(EBADHANDLE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) TRACE_DEFINE_ENUM(EBADCOOKIE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) TRACE_DEFINE_ENUM(ENOTSUPP);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) TRACE_DEFINE_ENUM(ETOOSMALL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) TRACE_DEFINE_ENUM(EREMOTEIO);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) TRACE_DEFINE_ENUM(EBADTYPE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) TRACE_DEFINE_ENUM(EAGAIN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) TRACE_DEFINE_ENUM(ELOOP);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) TRACE_DEFINE_ENUM(EOPNOTSUPP);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) TRACE_DEFINE_ENUM(EDEADLK);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) TRACE_DEFINE_ENUM(ENOMEM);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) TRACE_DEFINE_ENUM(EKEYEXPIRED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) TRACE_DEFINE_ENUM(ETIMEDOUT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) TRACE_DEFINE_ENUM(ERESTARTSYS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) TRACE_DEFINE_ENUM(ECONNREFUSED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) TRACE_DEFINE_ENUM(ECONNRESET);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) TRACE_DEFINE_ENUM(ENETUNREACH);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) TRACE_DEFINE_ENUM(EHOSTUNREACH);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) TRACE_DEFINE_ENUM(EHOSTDOWN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) TRACE_DEFINE_ENUM(EPIPE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) TRACE_DEFINE_ENUM(EPFNOSUPPORT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) TRACE_DEFINE_ENUM(EPROTONOSUPPORT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) TRACE_DEFINE_ENUM(NFS4_OK);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) TRACE_DEFINE_ENUM(NFS4ERR_ACCESS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) TRACE_DEFINE_ENUM(NFS4ERR_ATTRNOTSUPP);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) TRACE_DEFINE_ENUM(NFS4ERR_ADMIN_REVOKED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) TRACE_DEFINE_ENUM(NFS4ERR_BACK_CHAN_BUSY);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) TRACE_DEFINE_ENUM(NFS4ERR_BADCHAR);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) TRACE_DEFINE_ENUM(NFS4ERR_BADHANDLE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) TRACE_DEFINE_ENUM(NFS4ERR_BADIOMODE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) TRACE_DEFINE_ENUM(NFS4ERR_BADLAYOUT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) TRACE_DEFINE_ENUM(NFS4ERR_BADLABEL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) TRACE_DEFINE_ENUM(NFS4ERR_BADNAME);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) TRACE_DEFINE_ENUM(NFS4ERR_BADOWNER);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) TRACE_DEFINE_ENUM(NFS4ERR_BADSESSION);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) TRACE_DEFINE_ENUM(NFS4ERR_BADSLOT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) TRACE_DEFINE_ENUM(NFS4ERR_BADTYPE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) TRACE_DEFINE_ENUM(NFS4ERR_BADXDR);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) TRACE_DEFINE_ENUM(NFS4ERR_BAD_COOKIE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) TRACE_DEFINE_ENUM(NFS4ERR_BAD_HIGH_SLOT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) TRACE_DEFINE_ENUM(NFS4ERR_BAD_RANGE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) TRACE_DEFINE_ENUM(NFS4ERR_BAD_SEQID);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) TRACE_DEFINE_ENUM(NFS4ERR_BAD_SESSION_DIGEST);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) TRACE_DEFINE_ENUM(NFS4ERR_BAD_STATEID);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) TRACE_DEFINE_ENUM(NFS4ERR_CB_PATH_DOWN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) TRACE_DEFINE_ENUM(NFS4ERR_CLID_INUSE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) TRACE_DEFINE_ENUM(NFS4ERR_CLIENTID_BUSY);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) TRACE_DEFINE_ENUM(NFS4ERR_COMPLETE_ALREADY);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) TRACE_DEFINE_ENUM(NFS4ERR_CONN_NOT_BOUND_TO_SESSION);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) TRACE_DEFINE_ENUM(NFS4ERR_DEADLOCK);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) TRACE_DEFINE_ENUM(NFS4ERR_DEADSESSION);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) TRACE_DEFINE_ENUM(NFS4ERR_DELAY);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) TRACE_DEFINE_ENUM(NFS4ERR_DELEG_ALREADY_WANTED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) TRACE_DEFINE_ENUM(NFS4ERR_DELEG_REVOKED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) TRACE_DEFINE_ENUM(NFS4ERR_DENIED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) TRACE_DEFINE_ENUM(NFS4ERR_DIRDELEG_UNAVAIL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) TRACE_DEFINE_ENUM(NFS4ERR_DQUOT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) TRACE_DEFINE_ENUM(NFS4ERR_ENCR_ALG_UNSUPP);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) TRACE_DEFINE_ENUM(NFS4ERR_EXIST);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) TRACE_DEFINE_ENUM(NFS4ERR_EXPIRED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) TRACE_DEFINE_ENUM(NFS4ERR_FBIG);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) TRACE_DEFINE_ENUM(NFS4ERR_FHEXPIRED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) TRACE_DEFINE_ENUM(NFS4ERR_FILE_OPEN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) TRACE_DEFINE_ENUM(NFS4ERR_GRACE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) TRACE_DEFINE_ENUM(NFS4ERR_HASH_ALG_UNSUPP);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) TRACE_DEFINE_ENUM(NFS4ERR_INVAL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) TRACE_DEFINE_ENUM(NFS4ERR_IO);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) TRACE_DEFINE_ENUM(NFS4ERR_ISDIR);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) TRACE_DEFINE_ENUM(NFS4ERR_LAYOUTTRYLATER);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) TRACE_DEFINE_ENUM(NFS4ERR_LAYOUTUNAVAILABLE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) TRACE_DEFINE_ENUM(NFS4ERR_LEASE_MOVED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) TRACE_DEFINE_ENUM(NFS4ERR_LOCKED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) TRACE_DEFINE_ENUM(NFS4ERR_LOCKS_HELD);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) TRACE_DEFINE_ENUM(NFS4ERR_LOCK_RANGE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) TRACE_DEFINE_ENUM(NFS4ERR_MINOR_VERS_MISMATCH);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) TRACE_DEFINE_ENUM(NFS4ERR_MLINK);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) TRACE_DEFINE_ENUM(NFS4ERR_MOVED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) TRACE_DEFINE_ENUM(NFS4ERR_NAMETOOLONG);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) TRACE_DEFINE_ENUM(NFS4ERR_NOENT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) TRACE_DEFINE_ENUM(NFS4ERR_NOFILEHANDLE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) TRACE_DEFINE_ENUM(NFS4ERR_NOMATCHING_LAYOUT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) TRACE_DEFINE_ENUM(NFS4ERR_NOSPC);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) TRACE_DEFINE_ENUM(NFS4ERR_NOTDIR);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) TRACE_DEFINE_ENUM(NFS4ERR_NOTEMPTY);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) TRACE_DEFINE_ENUM(NFS4ERR_NOTSUPP);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) TRACE_DEFINE_ENUM(NFS4ERR_NOT_ONLY_OP);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) TRACE_DEFINE_ENUM(NFS4ERR_NOT_SAME);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) TRACE_DEFINE_ENUM(NFS4ERR_NO_GRACE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) TRACE_DEFINE_ENUM(NFS4ERR_NXIO);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) TRACE_DEFINE_ENUM(NFS4ERR_OLD_STATEID);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) TRACE_DEFINE_ENUM(NFS4ERR_OPENMODE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) TRACE_DEFINE_ENUM(NFS4ERR_OP_ILLEGAL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) TRACE_DEFINE_ENUM(NFS4ERR_OP_NOT_IN_SESSION);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) TRACE_DEFINE_ENUM(NFS4ERR_PERM);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) TRACE_DEFINE_ENUM(NFS4ERR_PNFS_IO_HOLE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) TRACE_DEFINE_ENUM(NFS4ERR_PNFS_NO_LAYOUT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) TRACE_DEFINE_ENUM(NFS4ERR_RECALLCONFLICT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) TRACE_DEFINE_ENUM(NFS4ERR_RECLAIM_BAD);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) TRACE_DEFINE_ENUM(NFS4ERR_RECLAIM_CONFLICT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) TRACE_DEFINE_ENUM(NFS4ERR_REJECT_DELEG);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) TRACE_DEFINE_ENUM(NFS4ERR_REP_TOO_BIG);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) TRACE_DEFINE_ENUM(NFS4ERR_REP_TOO_BIG_TO_CACHE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) TRACE_DEFINE_ENUM(NFS4ERR_REQ_TOO_BIG);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) TRACE_DEFINE_ENUM(NFS4ERR_RESOURCE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) TRACE_DEFINE_ENUM(NFS4ERR_RESTOREFH);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) TRACE_DEFINE_ENUM(NFS4ERR_RETRY_UNCACHED_REP);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) TRACE_DEFINE_ENUM(NFS4ERR_RETURNCONFLICT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) TRACE_DEFINE_ENUM(NFS4ERR_ROFS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) TRACE_DEFINE_ENUM(NFS4ERR_SAME);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) TRACE_DEFINE_ENUM(NFS4ERR_SHARE_DENIED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) TRACE_DEFINE_ENUM(NFS4ERR_SEQUENCE_POS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) TRACE_DEFINE_ENUM(NFS4ERR_SEQ_FALSE_RETRY);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) TRACE_DEFINE_ENUM(NFS4ERR_SEQ_MISORDERED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) TRACE_DEFINE_ENUM(NFS4ERR_SERVERFAULT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) TRACE_DEFINE_ENUM(NFS4ERR_STALE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) TRACE_DEFINE_ENUM(NFS4ERR_STALE_CLIENTID);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) TRACE_DEFINE_ENUM(NFS4ERR_STALE_STATEID);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) TRACE_DEFINE_ENUM(NFS4ERR_SYMLINK);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) TRACE_DEFINE_ENUM(NFS4ERR_TOOSMALL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) TRACE_DEFINE_ENUM(NFS4ERR_TOO_MANY_OPS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) TRACE_DEFINE_ENUM(NFS4ERR_UNKNOWN_LAYOUTTYPE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) TRACE_DEFINE_ENUM(NFS4ERR_UNSAFE_COMPOUND);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) TRACE_DEFINE_ENUM(NFS4ERR_WRONGSEC);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) TRACE_DEFINE_ENUM(NFS4ERR_WRONG_CRED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) TRACE_DEFINE_ENUM(NFS4ERR_WRONG_TYPE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) TRACE_DEFINE_ENUM(NFS4ERR_XDEV);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) TRACE_DEFINE_ENUM(NFS4ERR_RESET_TO_MDS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) TRACE_DEFINE_ENUM(NFS4ERR_RESET_TO_PNFS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) #define show_nfsv4_errors(error) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) __print_symbolic(error, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) { NFS4_OK, "OK" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) /* Mapped by nfs4_stat_to_errno() */ \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) { EPERM, "EPERM" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) { ENOENT, "ENOENT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) { EIO, "EIO" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) { ENXIO, "ENXIO" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) { EACCES, "EACCES" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) { EEXIST, "EEXIST" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) { EXDEV, "EXDEV" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) { ENOTDIR, "ENOTDIR" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) { EISDIR, "EISDIR" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) { EFBIG, "EFBIG" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) { ENOSPC, "ENOSPC" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) { EROFS, "EROFS" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) { EMLINK, "EMLINK" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) { ENAMETOOLONG, "ENAMETOOLONG" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) { ENOTEMPTY, "ENOTEMPTY" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) { EDQUOT, "EDQUOT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) { ESTALE, "ESTALE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) { EBADHANDLE, "EBADHANDLE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) { EBADCOOKIE, "EBADCOOKIE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) { ENOTSUPP, "ENOTSUPP" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) { ETOOSMALL, "ETOOSMALL" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) { EREMOTEIO, "EREMOTEIO" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) { EBADTYPE, "EBADTYPE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) { EAGAIN, "EAGAIN" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) { ELOOP, "ELOOP" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) { EOPNOTSUPP, "EOPNOTSUPP" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) { EDEADLK, "EDEADLK" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) /* RPC errors */ \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) { ENOMEM, "ENOMEM" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) { EKEYEXPIRED, "EKEYEXPIRED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) { ETIMEDOUT, "ETIMEDOUT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) { ERESTARTSYS, "ERESTARTSYS" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) { ECONNREFUSED, "ECONNREFUSED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) { ECONNRESET, "ECONNRESET" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) { ENETUNREACH, "ENETUNREACH" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) { EHOSTUNREACH, "EHOSTUNREACH" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) { EHOSTDOWN, "EHOSTDOWN" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) { EPIPE, "EPIPE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) { EPFNOSUPPORT, "EPFNOSUPPORT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) { EPROTONOSUPPORT, "EPROTONOSUPPORT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) /* NFSv4 native errors */ \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) { NFS4ERR_ACCESS, "ACCESS" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) { NFS4ERR_ATTRNOTSUPP, "ATTRNOTSUPP" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) { NFS4ERR_ADMIN_REVOKED, "ADMIN_REVOKED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) { NFS4ERR_BACK_CHAN_BUSY, "BACK_CHAN_BUSY" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) { NFS4ERR_BADCHAR, "BADCHAR" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) { NFS4ERR_BADHANDLE, "BADHANDLE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) { NFS4ERR_BADIOMODE, "BADIOMODE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) { NFS4ERR_BADLAYOUT, "BADLAYOUT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) { NFS4ERR_BADLABEL, "BADLABEL" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) { NFS4ERR_BADNAME, "BADNAME" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) { NFS4ERR_BADOWNER, "BADOWNER" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) { NFS4ERR_BADSESSION, "BADSESSION" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) { NFS4ERR_BADSLOT, "BADSLOT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) { NFS4ERR_BADTYPE, "BADTYPE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) { NFS4ERR_BADXDR, "BADXDR" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) { NFS4ERR_BAD_COOKIE, "BAD_COOKIE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) { NFS4ERR_BAD_HIGH_SLOT, "BAD_HIGH_SLOT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) { NFS4ERR_BAD_RANGE, "BAD_RANGE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) { NFS4ERR_BAD_SEQID, "BAD_SEQID" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) { NFS4ERR_BAD_SESSION_DIGEST, "BAD_SESSION_DIGEST" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) { NFS4ERR_BAD_STATEID, "BAD_STATEID" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) { NFS4ERR_CB_PATH_DOWN, "CB_PATH_DOWN" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) { NFS4ERR_CLID_INUSE, "CLID_INUSE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) { NFS4ERR_CLIENTID_BUSY, "CLIENTID_BUSY" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) { NFS4ERR_COMPLETE_ALREADY, "COMPLETE_ALREADY" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) { NFS4ERR_CONN_NOT_BOUND_TO_SESSION, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) "CONN_NOT_BOUND_TO_SESSION" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) { NFS4ERR_DEADLOCK, "DEADLOCK" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) { NFS4ERR_DEADSESSION, "DEAD_SESSION" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) { NFS4ERR_DELAY, "DELAY" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) { NFS4ERR_DELEG_ALREADY_WANTED, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) "DELEG_ALREADY_WANTED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) { NFS4ERR_DELEG_REVOKED, "DELEG_REVOKED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) { NFS4ERR_DENIED, "DENIED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) { NFS4ERR_DIRDELEG_UNAVAIL, "DIRDELEG_UNAVAIL" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) { NFS4ERR_DQUOT, "DQUOT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) { NFS4ERR_ENCR_ALG_UNSUPP, "ENCR_ALG_UNSUPP" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) { NFS4ERR_EXIST, "EXIST" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) { NFS4ERR_EXPIRED, "EXPIRED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) { NFS4ERR_FBIG, "FBIG" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) { NFS4ERR_FHEXPIRED, "FHEXPIRED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) { NFS4ERR_FILE_OPEN, "FILE_OPEN" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) { NFS4ERR_GRACE, "GRACE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) { NFS4ERR_HASH_ALG_UNSUPP, "HASH_ALG_UNSUPP" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) { NFS4ERR_INVAL, "INVAL" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) { NFS4ERR_IO, "IO" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) { NFS4ERR_ISDIR, "ISDIR" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) { NFS4ERR_LAYOUTTRYLATER, "LAYOUTTRYLATER" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) { NFS4ERR_LAYOUTUNAVAILABLE, "LAYOUTUNAVAILABLE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) { NFS4ERR_LEASE_MOVED, "LEASE_MOVED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) { NFS4ERR_LOCKED, "LOCKED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) { NFS4ERR_LOCKS_HELD, "LOCKS_HELD" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) { NFS4ERR_LOCK_RANGE, "LOCK_RANGE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) { NFS4ERR_MINOR_VERS_MISMATCH, "MINOR_VERS_MISMATCH" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) { NFS4ERR_MLINK, "MLINK" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) { NFS4ERR_MOVED, "MOVED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) { NFS4ERR_NAMETOOLONG, "NAMETOOLONG" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) { NFS4ERR_NOENT, "NOENT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) { NFS4ERR_NOFILEHANDLE, "NOFILEHANDLE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) { NFS4ERR_NOMATCHING_LAYOUT, "NOMATCHING_LAYOUT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) { NFS4ERR_NOSPC, "NOSPC" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) { NFS4ERR_NOTDIR, "NOTDIR" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) { NFS4ERR_NOTEMPTY, "NOTEMPTY" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) { NFS4ERR_NOTSUPP, "NOTSUPP" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) { NFS4ERR_NOT_ONLY_OP, "NOT_ONLY_OP" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) { NFS4ERR_NOT_SAME, "NOT_SAME" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) { NFS4ERR_NO_GRACE, "NO_GRACE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) { NFS4ERR_NXIO, "NXIO" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) { NFS4ERR_OLD_STATEID, "OLD_STATEID" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) { NFS4ERR_OPENMODE, "OPENMODE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) { NFS4ERR_OP_ILLEGAL, "OP_ILLEGAL" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) { NFS4ERR_OP_NOT_IN_SESSION, "OP_NOT_IN_SESSION" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) { NFS4ERR_PERM, "PERM" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) { NFS4ERR_PNFS_IO_HOLE, "PNFS_IO_HOLE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) { NFS4ERR_PNFS_NO_LAYOUT, "PNFS_NO_LAYOUT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) { NFS4ERR_RECALLCONFLICT, "RECALLCONFLICT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) { NFS4ERR_RECLAIM_BAD, "RECLAIM_BAD" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) { NFS4ERR_RECLAIM_CONFLICT, "RECLAIM_CONFLICT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) { NFS4ERR_REJECT_DELEG, "REJECT_DELEG" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) { NFS4ERR_REP_TOO_BIG, "REP_TOO_BIG" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) { NFS4ERR_REP_TOO_BIG_TO_CACHE, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) "REP_TOO_BIG_TO_CACHE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) { NFS4ERR_REQ_TOO_BIG, "REQ_TOO_BIG" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) { NFS4ERR_RESOURCE, "RESOURCE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) { NFS4ERR_RESTOREFH, "RESTOREFH" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) { NFS4ERR_RETRY_UNCACHED_REP, "RETRY_UNCACHED_REP" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) { NFS4ERR_RETURNCONFLICT, "RETURNCONFLICT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) { NFS4ERR_ROFS, "ROFS" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) { NFS4ERR_SAME, "SAME" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) { NFS4ERR_SHARE_DENIED, "SHARE_DENIED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) { NFS4ERR_SEQUENCE_POS, "SEQUENCE_POS" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) { NFS4ERR_SEQ_FALSE_RETRY, "SEQ_FALSE_RETRY" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) { NFS4ERR_SEQ_MISORDERED, "SEQ_MISORDERED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) { NFS4ERR_SERVERFAULT, "SERVERFAULT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) { NFS4ERR_STALE, "STALE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) { NFS4ERR_STALE_CLIENTID, "STALE_CLIENTID" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) { NFS4ERR_STALE_STATEID, "STALE_STATEID" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) { NFS4ERR_SYMLINK, "SYMLINK" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) { NFS4ERR_TOOSMALL, "TOOSMALL" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) { NFS4ERR_TOO_MANY_OPS, "TOO_MANY_OPS" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) { NFS4ERR_UNKNOWN_LAYOUTTYPE, "UNKNOWN_LAYOUTTYPE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) { NFS4ERR_UNSAFE_COMPOUND, "UNSAFE_COMPOUND" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) { NFS4ERR_WRONGSEC, "WRONGSEC" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) { NFS4ERR_WRONG_CRED, "WRONG_CRED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) { NFS4ERR_WRONG_TYPE, "WRONG_TYPE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) { NFS4ERR_XDEV, "XDEV" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) /* ***** Internal to Linux NFS client ***** */ \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) { NFS4ERR_RESET_TO_MDS, "RESET_TO_MDS" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) { NFS4ERR_RESET_TO_PNFS, "RESET_TO_PNFS" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) #define show_open_flags(flags) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) __print_flags(flags, "|", \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) { O_CREAT, "O_CREAT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) { O_EXCL, "O_EXCL" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) { O_TRUNC, "O_TRUNC" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) { O_DIRECT, "O_DIRECT" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) #define show_fmode_flags(mode) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) __print_flags(mode, "|", \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) { ((__force unsigned long)FMODE_READ), "READ" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) { ((__force unsigned long)FMODE_WRITE), "WRITE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) { ((__force unsigned long)FMODE_EXEC), "EXEC" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) #define show_nfs_fattr_flags(valid) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) __print_flags((unsigned long)valid, "|", \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) { NFS_ATTR_FATTR_TYPE, "TYPE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) { NFS_ATTR_FATTR_MODE, "MODE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) { NFS_ATTR_FATTR_NLINK, "NLINK" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) { NFS_ATTR_FATTR_OWNER, "OWNER" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) { NFS_ATTR_FATTR_GROUP, "GROUP" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) { NFS_ATTR_FATTR_RDEV, "RDEV" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) { NFS_ATTR_FATTR_SIZE, "SIZE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) { NFS_ATTR_FATTR_FSID, "FSID" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) { NFS_ATTR_FATTR_FILEID, "FILEID" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) { NFS_ATTR_FATTR_ATIME, "ATIME" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) { NFS_ATTR_FATTR_MTIME, "MTIME" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) { NFS_ATTR_FATTR_CTIME, "CTIME" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) { NFS_ATTR_FATTR_CHANGE, "CHANGE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) { NFS_ATTR_FATTR_OWNER_NAME, "OWNER_NAME" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) { NFS_ATTR_FATTR_GROUP_NAME, "GROUP_NAME" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) DECLARE_EVENT_CLASS(nfs4_clientid_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) const struct nfs_client *clp,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) TP_ARGS(clp, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) __string(dstaddr, clp->cl_hostname)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) __entry->error = error < 0 ? -error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) __assign_str(dstaddr, clp->cl_hostname);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) "error=%ld (%s) dstaddr=%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) __get_str(dstaddr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) #define DEFINE_NFS4_CLIENTID_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) DEFINE_EVENT(nfs4_clientid_event, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) const struct nfs_client *clp, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) int error \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) TP_ARGS(clp, error))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) DEFINE_NFS4_CLIENTID_EVENT(nfs4_setclientid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) DEFINE_NFS4_CLIENTID_EVENT(nfs4_setclientid_confirm);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) DEFINE_NFS4_CLIENTID_EVENT(nfs4_renew);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) DEFINE_NFS4_CLIENTID_EVENT(nfs4_renew_async);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) #ifdef CONFIG_NFS_V4_1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) DEFINE_NFS4_CLIENTID_EVENT(nfs4_exchange_id);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) DEFINE_NFS4_CLIENTID_EVENT(nfs4_create_session);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) DEFINE_NFS4_CLIENTID_EVENT(nfs4_destroy_session);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) DEFINE_NFS4_CLIENTID_EVENT(nfs4_destroy_clientid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) DEFINE_NFS4_CLIENTID_EVENT(nfs4_bind_conn_to_session);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) DEFINE_NFS4_CLIENTID_EVENT(nfs4_sequence);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) DEFINE_NFS4_CLIENTID_EVENT(nfs4_reclaim_complete);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) #define show_nfs4_sequence_status_flags(status) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) __print_flags((unsigned long)status, "|", \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) { SEQ4_STATUS_CB_PATH_DOWN, "CB_PATH_DOWN" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) { SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRING, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) "CB_GSS_CONTEXTS_EXPIRING" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) { SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRED, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) "CB_GSS_CONTEXTS_EXPIRED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) { SEQ4_STATUS_EXPIRED_ALL_STATE_REVOKED, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) "EXPIRED_ALL_STATE_REVOKED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) { SEQ4_STATUS_EXPIRED_SOME_STATE_REVOKED, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) "EXPIRED_SOME_STATE_REVOKED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) { SEQ4_STATUS_ADMIN_STATE_REVOKED, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) "ADMIN_STATE_REVOKED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) { SEQ4_STATUS_RECALLABLE_STATE_REVOKED, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) "RECALLABLE_STATE_REVOKED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) { SEQ4_STATUS_LEASE_MOVED, "LEASE_MOVED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) { SEQ4_STATUS_RESTART_RECLAIM_NEEDED, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) "RESTART_RECLAIM_NEEDED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) { SEQ4_STATUS_CB_PATH_DOWN_SESSION, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) "CB_PATH_DOWN_SESSION" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) { SEQ4_STATUS_BACKCHANNEL_FAULT, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) "BACKCHANNEL_FAULT" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) TRACE_EVENT(nfs4_sequence_done,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) const struct nfs4_session *session,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) const struct nfs4_sequence_res *res
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) TP_ARGS(session, res),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) __field(unsigned int, session)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) __field(unsigned int, slot_nr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) __field(unsigned int, seq_nr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) __field(unsigned int, highest_slotid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) __field(unsigned int, target_highest_slotid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) __field(unsigned int, status_flags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) const struct nfs4_slot *sr_slot = res->sr_slot;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) __entry->session = nfs_session_id_hash(&session->sess_id);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) __entry->slot_nr = sr_slot->slot_nr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) __entry->seq_nr = sr_slot->seq_nr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) __entry->highest_slotid = res->sr_highest_slotid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) __entry->target_highest_slotid =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) res->sr_target_highest_slotid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) __entry->status_flags = res->sr_status_flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) __entry->error = res->sr_status < 0 ?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) -res->sr_status : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) "error=%ld (%s) session=0x%08x slot_nr=%u seq_nr=%u "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) "highest_slotid=%u target_highest_slotid=%u "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) "status_flags=%u (%s)",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) __entry->session,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) __entry->slot_nr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) __entry->seq_nr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) __entry->highest_slotid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) __entry->target_highest_slotid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) __entry->status_flags,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) show_nfs4_sequence_status_flags(__entry->status_flags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) struct cb_sequenceargs;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) struct cb_sequenceres;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) TRACE_EVENT(nfs4_cb_sequence,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) const struct cb_sequenceargs *args,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) const struct cb_sequenceres *res,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) __be32 status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) TP_ARGS(args, res, status),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) __field(unsigned int, session)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) __field(unsigned int, slot_nr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) __field(unsigned int, seq_nr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) __field(unsigned int, highest_slotid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) __field(unsigned int, cachethis)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) __entry->session = nfs_session_id_hash(&args->csa_sessionid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) __entry->slot_nr = args->csa_slotid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) __entry->seq_nr = args->csa_sequenceid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) __entry->highest_slotid = args->csa_highestslotid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) __entry->cachethis = args->csa_cachethis;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) __entry->error = be32_to_cpu(status);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) "error=%ld (%s) session=0x%08x slot_nr=%u seq_nr=%u "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) "highest_slotid=%u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) __entry->session,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) __entry->slot_nr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) __entry->seq_nr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) __entry->highest_slotid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) TRACE_EVENT(nfs4_cb_seqid_err,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) const struct cb_sequenceargs *args,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) __be32 status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) TP_ARGS(args, status),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) __field(unsigned int, session)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) __field(unsigned int, slot_nr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) __field(unsigned int, seq_nr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) __field(unsigned int, highest_slotid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) __field(unsigned int, cachethis)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) __entry->session = nfs_session_id_hash(&args->csa_sessionid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) __entry->slot_nr = args->csa_slotid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) __entry->seq_nr = args->csa_sequenceid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) __entry->highest_slotid = args->csa_highestslotid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) __entry->cachethis = args->csa_cachethis;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) __entry->error = be32_to_cpu(status);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) "error=%ld (%s) session=0x%08x slot_nr=%u seq_nr=%u "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) "highest_slotid=%u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) __entry->session,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) __entry->slot_nr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) __entry->seq_nr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) __entry->highest_slotid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) #endif /* CONFIG_NFS_V4_1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) TRACE_EVENT(nfs4_setup_sequence,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) const struct nfs4_session *session,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) const struct nfs4_sequence_args *args
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) TP_ARGS(session, args),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) __field(unsigned int, session)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) __field(unsigned int, slot_nr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) __field(unsigned int, seq_nr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) __field(unsigned int, highest_used_slotid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) const struct nfs4_slot *sa_slot = args->sa_slot;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) __entry->session = session ? nfs_session_id_hash(&session->sess_id) : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) __entry->slot_nr = sa_slot->slot_nr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) __entry->seq_nr = sa_slot->seq_nr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) __entry->highest_used_slotid =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) sa_slot->table->highest_used_slotid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) "session=0x%08x slot_nr=%u seq_nr=%u "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) "highest_used_slotid=%u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) __entry->session,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) __entry->slot_nr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) __entry->seq_nr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) __entry->highest_used_slotid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) TRACE_DEFINE_ENUM(NFS4CLNT_MANAGER_RUNNING);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573) TRACE_DEFINE_ENUM(NFS4CLNT_CHECK_LEASE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) TRACE_DEFINE_ENUM(NFS4CLNT_LEASE_EXPIRED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) TRACE_DEFINE_ENUM(NFS4CLNT_RECLAIM_REBOOT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) TRACE_DEFINE_ENUM(NFS4CLNT_RECLAIM_NOGRACE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) TRACE_DEFINE_ENUM(NFS4CLNT_DELEGRETURN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) TRACE_DEFINE_ENUM(NFS4CLNT_SESSION_RESET);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) TRACE_DEFINE_ENUM(NFS4CLNT_LEASE_CONFIRM);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) TRACE_DEFINE_ENUM(NFS4CLNT_SERVER_SCOPE_MISMATCH);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581) TRACE_DEFINE_ENUM(NFS4CLNT_PURGE_STATE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) TRACE_DEFINE_ENUM(NFS4CLNT_BIND_CONN_TO_SESSION);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) TRACE_DEFINE_ENUM(NFS4CLNT_MOVED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) TRACE_DEFINE_ENUM(NFS4CLNT_LEASE_MOVED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) TRACE_DEFINE_ENUM(NFS4CLNT_DELEGATION_EXPIRED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586) TRACE_DEFINE_ENUM(NFS4CLNT_RUN_MANAGER);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) TRACE_DEFINE_ENUM(NFS4CLNT_RECALL_RUNNING);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) TRACE_DEFINE_ENUM(NFS4CLNT_RECALL_ANY_LAYOUT_READ);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589) TRACE_DEFINE_ENUM(NFS4CLNT_RECALL_ANY_LAYOUT_RW);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) #define show_nfs4_clp_state(state) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) __print_flags(state, "|", \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593) { NFS4CLNT_MANAGER_RUNNING, "MANAGER_RUNNING" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) { NFS4CLNT_CHECK_LEASE, "CHECK_LEASE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595) { NFS4CLNT_LEASE_EXPIRED, "LEASE_EXPIRED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) { NFS4CLNT_RECLAIM_REBOOT, "RECLAIM_REBOOT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597) { NFS4CLNT_RECLAIM_NOGRACE, "RECLAIM_NOGRACE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) { NFS4CLNT_DELEGRETURN, "DELEGRETURN" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) { NFS4CLNT_SESSION_RESET, "SESSION_RESET" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600) { NFS4CLNT_LEASE_CONFIRM, "LEASE_CONFIRM" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) { NFS4CLNT_SERVER_SCOPE_MISMATCH, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602) "SERVER_SCOPE_MISMATCH" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) { NFS4CLNT_PURGE_STATE, "PURGE_STATE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604) { NFS4CLNT_BIND_CONN_TO_SESSION, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) "BIND_CONN_TO_SESSION" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606) { NFS4CLNT_MOVED, "MOVED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) { NFS4CLNT_LEASE_MOVED, "LEASE_MOVED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608) { NFS4CLNT_DELEGATION_EXPIRED, "DELEGATION_EXPIRED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609) { NFS4CLNT_RUN_MANAGER, "RUN_MANAGER" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610) { NFS4CLNT_RECALL_RUNNING, "RECALL_RUNNING" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) { NFS4CLNT_RECALL_ANY_LAYOUT_READ, "RECALL_ANY_LAYOUT_READ" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) { NFS4CLNT_RECALL_ANY_LAYOUT_RW, "RECALL_ANY_LAYOUT_RW" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614) TRACE_EVENT(nfs4_state_mgr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616) const struct nfs_client *clp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619) TP_ARGS(clp),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622) __field(unsigned long, state)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) __string(hostname, clp->cl_hostname)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) __entry->state = clp->cl_state;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) __assign_str(hostname, clp->cl_hostname)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632) "hostname=%s clp state=%s", __get_str(hostname),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633) show_nfs4_clp_state(__entry->state)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637) TRACE_EVENT(nfs4_state_mgr_failed,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639) const struct nfs_client *clp,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640) const char *section,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641) int status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644) TP_ARGS(clp, section, status),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648) __field(unsigned long, state)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649) __string(hostname, clp->cl_hostname)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650) __string(section, section)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654) __entry->error = status < 0 ? -status : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655) __entry->state = clp->cl_state;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656) __assign_str(hostname, clp->cl_hostname);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657) __assign_str(section, section);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) "hostname=%s clp state=%s error=%ld (%s) section=%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662) __get_str(hostname),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663) show_nfs4_clp_state(__entry->state), -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664) show_nfsv4_errors(__entry->error), __get_str(section)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669) TRACE_EVENT(nfs4_xdr_status,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671) const struct xdr_stream *xdr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672) u32 op,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673) u32 error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 674) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 675)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 676) TP_ARGS(xdr, op, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 677)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 678) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 679) __field(unsigned int, task_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 680) __field(unsigned int, client_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 681) __field(u32, xid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 682) __field(u32, op)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 683) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 684) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 685)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 686) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 687) const struct rpc_rqst *rqstp = xdr->rqst;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 688) const struct rpc_task *task = rqstp->rq_task;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 689)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 690) __entry->task_id = task->tk_pid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 691) __entry->client_id = task->tk_client->cl_clid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 692) __entry->xid = be32_to_cpu(rqstp->rq_xid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 693) __entry->op = op;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 694) __entry->error = error;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 695) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 696)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 697) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 698) "task:%u@%d xid=0x%08x error=%ld (%s) operation=%u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 699) __entry->task_id, __entry->client_id, __entry->xid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 700) -__entry->error, show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 701) __entry->op
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 702) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 703) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 704)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 705) DECLARE_EVENT_CLASS(nfs4_cb_error_class,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 706) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 707) __be32 xid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 708) u32 cb_ident
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 709) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 710)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 711) TP_ARGS(xid, cb_ident),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 712)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 713) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 714) __field(u32, xid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 715) __field(u32, cbident)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 716) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 717)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 718) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 719) __entry->xid = be32_to_cpu(xid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 720) __entry->cbident = cb_ident;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 721) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 722)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 723) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 724) "xid=0x%08x cb_ident=0x%08x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 725) __entry->xid, __entry->cbident
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 726) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 727) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 728)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 729) #define DEFINE_CB_ERROR_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 730) DEFINE_EVENT(nfs4_cb_error_class, nfs_cb_##name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 731) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 732) __be32 xid, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 733) u32 cb_ident \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 734) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 735) TP_ARGS(xid, cb_ident))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 736)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 737) DEFINE_CB_ERROR_EVENT(no_clp);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 738) DEFINE_CB_ERROR_EVENT(badprinc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 739)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 740) DECLARE_EVENT_CLASS(nfs4_open_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 741) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 742) const struct nfs_open_context *ctx,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 743) int flags,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 744) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 745) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 746)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 747) TP_ARGS(ctx, flags, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 748)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 749) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 750) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 751) __field(unsigned int, flags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 752) __field(unsigned int, fmode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 753) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 754) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 755) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 756) __field(u64, dir)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 757) __string(name, ctx->dentry->d_name.name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 758) __field(int, stateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 759) __field(u32, stateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 760) __field(int, openstateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 761) __field(u32, openstateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 762) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 763)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 764) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 765) const struct nfs4_state *state = ctx->state;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 766) const struct inode *inode = NULL;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 767)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 768) __entry->error = -error;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 769) __entry->flags = flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 770) __entry->fmode = (__force unsigned int)ctx->mode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 771) __entry->dev = ctx->dentry->d_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 772) if (!IS_ERR_OR_NULL(state)) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 773) inode = state->inode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 774) __entry->stateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 775) be32_to_cpu(state->stateid.seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 776) __entry->stateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 777) nfs_stateid_hash(&state->stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 778) __entry->openstateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 779) be32_to_cpu(state->open_stateid.seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 780) __entry->openstateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 781) nfs_stateid_hash(&state->open_stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 782) } else {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 783) __entry->stateid_seq = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 784) __entry->stateid_hash = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 785) __entry->openstateid_seq = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 786) __entry->openstateid_hash = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 787) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 788) if (inode != NULL) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 789) __entry->fileid = NFS_FILEID(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 790) __entry->fhandle = nfs_fhandle_hash(NFS_FH(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 791) } else {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 792) __entry->fileid = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 793) __entry->fhandle = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 794) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 795) __entry->dir = NFS_FILEID(d_inode(ctx->dentry->d_parent));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 796) __assign_str(name, ctx->dentry->d_name.name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 797) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 798)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 799) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 800) "error=%ld (%s) flags=%d (%s) fmode=%s "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 801) "fileid=%02x:%02x:%llu fhandle=0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 802) "name=%02x:%02x:%llu/%s stateid=%d:0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 803) "openstateid=%d:0x%08x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 804) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 805) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 806) __entry->flags,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 807) show_open_flags(__entry->flags),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 808) show_fmode_flags(__entry->fmode),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 809) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 810) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 811) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 812) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 813) (unsigned long long)__entry->dir,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 814) __get_str(name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 815) __entry->stateid_seq, __entry->stateid_hash,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 816) __entry->openstateid_seq, __entry->openstateid_hash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 817) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 818) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 819)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 820) #define DEFINE_NFS4_OPEN_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 821) DEFINE_EVENT(nfs4_open_event, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 822) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 823) const struct nfs_open_context *ctx, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 824) int flags, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 825) int error \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 826) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 827) TP_ARGS(ctx, flags, error))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 828) DEFINE_NFS4_OPEN_EVENT(nfs4_open_reclaim);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 829) DEFINE_NFS4_OPEN_EVENT(nfs4_open_expired);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 830) DEFINE_NFS4_OPEN_EVENT(nfs4_open_file);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 831)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 832) TRACE_EVENT(nfs4_cached_open,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 833) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 834) const struct nfs4_state *state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 835) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 836) TP_ARGS(state),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 837) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 838) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 839) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 840) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 841) __field(unsigned int, fmode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 842) __field(int, stateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 843) __field(u32, stateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 844) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 845)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 846) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 847) const struct inode *inode = state->inode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 848)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 849) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 850) __entry->fileid = NFS_FILEID(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 851) __entry->fhandle = nfs_fhandle_hash(NFS_FH(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 852) __entry->fmode = (__force unsigned int)state->state;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 853) __entry->stateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 854) be32_to_cpu(state->stateid.seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 855) __entry->stateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 856) nfs_stateid_hash(&state->stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 857) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 858)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 859) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 860) "fmode=%s fileid=%02x:%02x:%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 861) "fhandle=0x%08x stateid=%d:0x%08x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 862) __entry->fmode ? show_fmode_flags(__entry->fmode) :
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 863) "closed",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 864) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 865) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 866) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 867) __entry->stateid_seq, __entry->stateid_hash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 868) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 869) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 870)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 871) TRACE_EVENT(nfs4_close,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 872) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 873) const struct nfs4_state *state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 874) const struct nfs_closeargs *args,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 875) const struct nfs_closeres *res,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 876) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 877) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 878)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 879) TP_ARGS(state, args, res, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 880)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 881) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 882) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 883) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 884) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 885) __field(unsigned int, fmode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 886) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 887) __field(int, stateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 888) __field(u32, stateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 889) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 890)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 891) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 892) const struct inode *inode = state->inode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 893)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 894) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 895) __entry->fileid = NFS_FILEID(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 896) __entry->fhandle = nfs_fhandle_hash(NFS_FH(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 897) __entry->fmode = (__force unsigned int)state->state;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 898) __entry->error = error < 0 ? -error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 899) __entry->stateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 900) be32_to_cpu(args->stateid.seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 901) __entry->stateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 902) nfs_stateid_hash(&args->stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 903) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 904)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 905) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 906) "error=%ld (%s) fmode=%s fileid=%02x:%02x:%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 907) "fhandle=0x%08x openstateid=%d:0x%08x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 908) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 909) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 910) __entry->fmode ? show_fmode_flags(__entry->fmode) :
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 911) "closed",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 912) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 913) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 914) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 915) __entry->stateid_seq, __entry->stateid_hash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 916) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 917) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 918)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 919) TRACE_DEFINE_ENUM(F_GETLK);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 920) TRACE_DEFINE_ENUM(F_SETLK);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 921) TRACE_DEFINE_ENUM(F_SETLKW);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 922) TRACE_DEFINE_ENUM(F_RDLCK);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 923) TRACE_DEFINE_ENUM(F_WRLCK);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 924) TRACE_DEFINE_ENUM(F_UNLCK);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 925)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 926) #define show_lock_cmd(type) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 927) __print_symbolic((int)type, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 928) { F_GETLK, "GETLK" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 929) { F_SETLK, "SETLK" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 930) { F_SETLKW, "SETLKW" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 931) #define show_lock_type(type) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 932) __print_symbolic((int)type, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 933) { F_RDLCK, "RDLCK" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 934) { F_WRLCK, "WRLCK" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 935) { F_UNLCK, "UNLCK" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 936)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 937) DECLARE_EVENT_CLASS(nfs4_lock_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 938) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 939) const struct file_lock *request,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 940) const struct nfs4_state *state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 941) int cmd,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 942) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 943) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 944)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 945) TP_ARGS(request, state, cmd, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 946)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 947) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 948) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 949) __field(int, cmd)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 950) __field(char, type)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 951) __field(loff_t, start)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 952) __field(loff_t, end)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 953) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 954) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 955) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 956) __field(int, stateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 957) __field(u32, stateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 958) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 959)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 960) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 961) const struct inode *inode = state->inode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 962)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 963) __entry->error = error < 0 ? -error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 964) __entry->cmd = cmd;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 965) __entry->type = request->fl_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 966) __entry->start = request->fl_start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 967) __entry->end = request->fl_end;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 968) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 969) __entry->fileid = NFS_FILEID(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 970) __entry->fhandle = nfs_fhandle_hash(NFS_FH(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 971) __entry->stateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 972) be32_to_cpu(state->stateid.seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 973) __entry->stateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 974) nfs_stateid_hash(&state->stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 975) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 976)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 977) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 978) "error=%ld (%s) cmd=%s:%s range=%lld:%lld "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 979) "fileid=%02x:%02x:%llu fhandle=0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 980) "stateid=%d:0x%08x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 981) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 982) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 983) show_lock_cmd(__entry->cmd),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 984) show_lock_type(__entry->type),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 985) (long long)__entry->start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 986) (long long)__entry->end,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 987) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 988) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 989) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 990) __entry->stateid_seq, __entry->stateid_hash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 991) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 992) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 993)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 994) #define DEFINE_NFS4_LOCK_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 995) DEFINE_EVENT(nfs4_lock_event, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 996) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 997) const struct file_lock *request, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 998) const struct nfs4_state *state, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 999) int cmd, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1000) int error \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1001) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1002) TP_ARGS(request, state, cmd, error))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1003) DEFINE_NFS4_LOCK_EVENT(nfs4_get_lock);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1004) DEFINE_NFS4_LOCK_EVENT(nfs4_unlock);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1005)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1006) TRACE_EVENT(nfs4_set_lock,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1007) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1008) const struct file_lock *request,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1009) const struct nfs4_state *state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1010) const nfs4_stateid *lockstateid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1011) int cmd,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1012) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1013) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1014)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1015) TP_ARGS(request, state, lockstateid, cmd, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1016)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1017) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1018) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1019) __field(int, cmd)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1020) __field(char, type)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1021) __field(loff_t, start)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1022) __field(loff_t, end)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1023) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1024) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1025) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1026) __field(int, stateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1027) __field(u32, stateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1028) __field(int, lockstateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1029) __field(u32, lockstateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1030) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1031)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1032) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1033) const struct inode *inode = state->inode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1034)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1035) __entry->error = error < 0 ? -error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1036) __entry->cmd = cmd;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1037) __entry->type = request->fl_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1038) __entry->start = request->fl_start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1039) __entry->end = request->fl_end;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1040) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1041) __entry->fileid = NFS_FILEID(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1042) __entry->fhandle = nfs_fhandle_hash(NFS_FH(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1043) __entry->stateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1044) be32_to_cpu(state->stateid.seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1045) __entry->stateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1046) nfs_stateid_hash(&state->stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1047) __entry->lockstateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1048) be32_to_cpu(lockstateid->seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1049) __entry->lockstateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1050) nfs_stateid_hash(lockstateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1051) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1052)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1053) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1054) "error=%ld (%s) cmd=%s:%s range=%lld:%lld "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1055) "fileid=%02x:%02x:%llu fhandle=0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1056) "stateid=%d:0x%08x lockstateid=%d:0x%08x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1057) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1058) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1059) show_lock_cmd(__entry->cmd),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1060) show_lock_type(__entry->type),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1061) (long long)__entry->start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1062) (long long)__entry->end,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1063) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1064) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1065) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1066) __entry->stateid_seq, __entry->stateid_hash,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1067) __entry->lockstateid_seq, __entry->lockstateid_hash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1068) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1069) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1070)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1071) TRACE_DEFINE_ENUM(LK_STATE_IN_USE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1072) TRACE_DEFINE_ENUM(NFS_DELEGATED_STATE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1073) TRACE_DEFINE_ENUM(NFS_OPEN_STATE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1074) TRACE_DEFINE_ENUM(NFS_O_RDONLY_STATE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1075) TRACE_DEFINE_ENUM(NFS_O_WRONLY_STATE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1076) TRACE_DEFINE_ENUM(NFS_O_RDWR_STATE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1077) TRACE_DEFINE_ENUM(NFS_STATE_RECLAIM_REBOOT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1078) TRACE_DEFINE_ENUM(NFS_STATE_RECLAIM_NOGRACE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1079) TRACE_DEFINE_ENUM(NFS_STATE_POSIX_LOCKS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1080) TRACE_DEFINE_ENUM(NFS_STATE_RECOVERY_FAILED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1081) TRACE_DEFINE_ENUM(NFS_STATE_MAY_NOTIFY_LOCK);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1082) TRACE_DEFINE_ENUM(NFS_STATE_CHANGE_WAIT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1083) TRACE_DEFINE_ENUM(NFS_CLNT_DST_SSC_COPY_STATE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1084) TRACE_DEFINE_ENUM(NFS_CLNT_SRC_SSC_COPY_STATE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1085) TRACE_DEFINE_ENUM(NFS_SRV_SSC_COPY_STATE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1086)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1087) #define show_nfs4_state_flags(flags) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1088) __print_flags(flags, "|", \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1089) { LK_STATE_IN_USE, "IN_USE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1090) { NFS_DELEGATED_STATE, "DELEGATED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1091) { NFS_OPEN_STATE, "OPEN" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1092) { NFS_O_RDONLY_STATE, "O_RDONLY" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1093) { NFS_O_WRONLY_STATE, "O_WRONLY" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1094) { NFS_O_RDWR_STATE, "O_RDWR" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1095) { NFS_STATE_RECLAIM_REBOOT, "RECLAIM_REBOOT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1096) { NFS_STATE_RECLAIM_NOGRACE, "RECLAIM_NOGRACE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1097) { NFS_STATE_POSIX_LOCKS, "POSIX_LOCKS" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1098) { NFS_STATE_RECOVERY_FAILED, "RECOVERY_FAILED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1099) { NFS_STATE_MAY_NOTIFY_LOCK, "MAY_NOTIFY_LOCK" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1100) { NFS_STATE_CHANGE_WAIT, "CHANGE_WAIT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1101) { NFS_CLNT_DST_SSC_COPY_STATE, "CLNT_DST_SSC_COPY" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1102) { NFS_CLNT_SRC_SSC_COPY_STATE, "CLNT_SRC_SSC_COPY" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1103) { NFS_SRV_SSC_COPY_STATE, "SRV_SSC_COPY" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1104)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1105) #define show_nfs4_lock_flags(flags) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1106) __print_flags(flags, "|", \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1107) { BIT(NFS_LOCK_INITIALIZED), "INITIALIZED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1108) { BIT(NFS_LOCK_LOST), "LOST" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1110) TRACE_EVENT(nfs4_state_lock_reclaim,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1111) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1112) const struct nfs4_state *state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1113) const struct nfs4_lock_state *lock
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1114) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1115)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1116) TP_ARGS(state, lock),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1117)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1118) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1119) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1120) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1121) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1122) __field(unsigned long, state_flags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1123) __field(unsigned long, lock_flags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1124) __field(int, stateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1125) __field(u32, stateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1126) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1127)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1128) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1129) const struct inode *inode = state->inode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1131) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1132) __entry->fileid = NFS_FILEID(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1133) __entry->fhandle = nfs_fhandle_hash(NFS_FH(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1134) __entry->state_flags = state->flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1135) __entry->lock_flags = lock->ls_flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1136) __entry->stateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1137) be32_to_cpu(state->stateid.seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1138) __entry->stateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1139) nfs_stateid_hash(&state->stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1140) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1141)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1142) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1143) "fileid=%02x:%02x:%llu fhandle=0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1144) "stateid=%d:0x%08x state_flags=%s lock_flags=%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1145) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1146) (unsigned long long)__entry->fileid, __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1147) __entry->stateid_seq, __entry->stateid_hash,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1148) show_nfs4_state_flags(__entry->state_flags),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1149) show_nfs4_lock_flags(__entry->lock_flags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1150) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1151) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1152)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1153) DECLARE_EVENT_CLASS(nfs4_set_delegation_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1154) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1155) const struct inode *inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1156) fmode_t fmode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1157) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1158)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1159) TP_ARGS(inode, fmode),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1160)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1161) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1162) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1163) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1164) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1165) __field(unsigned int, fmode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1166) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1167)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1168) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1169) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1170) __entry->fileid = NFS_FILEID(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1171) __entry->fhandle = nfs_fhandle_hash(NFS_FH(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1172) __entry->fmode = (__force unsigned int)fmode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1173) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1174)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1175) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1176) "fmode=%s fileid=%02x:%02x:%llu fhandle=0x%08x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1177) show_fmode_flags(__entry->fmode),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1178) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1179) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1180) __entry->fhandle
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1181) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1182) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1183) #define DEFINE_NFS4_SET_DELEGATION_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1184) DEFINE_EVENT(nfs4_set_delegation_event, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1185) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1186) const struct inode *inode, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1187) fmode_t fmode \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1188) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1189) TP_ARGS(inode, fmode))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1190) DEFINE_NFS4_SET_DELEGATION_EVENT(nfs4_set_delegation);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1191) DEFINE_NFS4_SET_DELEGATION_EVENT(nfs4_reclaim_delegation);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1192)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1193) TRACE_EVENT(nfs4_delegreturn_exit,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1194) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1195) const struct nfs4_delegreturnargs *args,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1196) const struct nfs4_delegreturnres *res,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1197) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1198) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1199)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1200) TP_ARGS(args, res, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1201)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1202) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1203) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1204) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1205) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1206) __field(int, stateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1207) __field(u32, stateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1208) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1209)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1210) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1211) __entry->dev = res->server->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1212) __entry->fhandle = nfs_fhandle_hash(args->fhandle);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1213) __entry->error = error < 0 ? -error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1214) __entry->stateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1215) be32_to_cpu(args->stateid->seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1216) __entry->stateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1217) nfs_stateid_hash(args->stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1218) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1219)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1220) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1221) "error=%ld (%s) dev=%02x:%02x fhandle=0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1222) "stateid=%d:0x%08x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1223) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1224) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1225) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1226) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1227) __entry->stateid_seq, __entry->stateid_hash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1228) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1229) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1230)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1231) #ifdef CONFIG_NFS_V4_1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1232) DECLARE_EVENT_CLASS(nfs4_test_stateid_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1233) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1234) const struct nfs4_state *state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1235) const struct nfs4_lock_state *lsp,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1236) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1237) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1238)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1239) TP_ARGS(state, lsp, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1240)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1241) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1242) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1243) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1244) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1245) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1246) __field(int, stateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1247) __field(u32, stateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1248) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1249)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1250) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1251) const struct inode *inode = state->inode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1252)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1253) __entry->error = error < 0 ? -error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1254) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1255) __entry->fileid = NFS_FILEID(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1256) __entry->fhandle = nfs_fhandle_hash(NFS_FH(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1257) __entry->stateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1258) be32_to_cpu(state->stateid.seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1259) __entry->stateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1260) nfs_stateid_hash(&state->stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1261) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1262)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1263) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1264) "error=%ld (%s) fileid=%02x:%02x:%llu fhandle=0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1265) "stateid=%d:0x%08x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1266) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1267) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1268) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1269) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1270) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1271) __entry->stateid_seq, __entry->stateid_hash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1272) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1273) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1274)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1275) #define DEFINE_NFS4_TEST_STATEID_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1276) DEFINE_EVENT(nfs4_test_stateid_event, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1277) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1278) const struct nfs4_state *state, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1279) const struct nfs4_lock_state *lsp, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1280) int error \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1281) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1282) TP_ARGS(state, lsp, error))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1283) DEFINE_NFS4_TEST_STATEID_EVENT(nfs4_test_delegation_stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1284) DEFINE_NFS4_TEST_STATEID_EVENT(nfs4_test_open_stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1285) DEFINE_NFS4_TEST_STATEID_EVENT(nfs4_test_lock_stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1286) #endif /* CONFIG_NFS_V4_1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1287)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1288) DECLARE_EVENT_CLASS(nfs4_lookup_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1289) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1290) const struct inode *dir,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1291) const struct qstr *name,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1292) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1293) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1294)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1295) TP_ARGS(dir, name, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1296)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1297) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1298) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1299) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1300) __field(u64, dir)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1301) __string(name, name->name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1302) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1303)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1304) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1305) __entry->dev = dir->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1306) __entry->dir = NFS_FILEID(dir);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1307) __entry->error = -error;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1308) __assign_str(name, name->name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1309) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1310)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1311) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1312) "error=%ld (%s) name=%02x:%02x:%llu/%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1313) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1314) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1315) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1316) (unsigned long long)__entry->dir,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1317) __get_str(name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1318) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1319) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1320)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1321) #define DEFINE_NFS4_LOOKUP_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1322) DEFINE_EVENT(nfs4_lookup_event, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1323) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1324) const struct inode *dir, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1325) const struct qstr *name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1326) int error \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1327) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1328) TP_ARGS(dir, name, error))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1329)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1330) DEFINE_NFS4_LOOKUP_EVENT(nfs4_lookup);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1331) DEFINE_NFS4_LOOKUP_EVENT(nfs4_symlink);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1332) DEFINE_NFS4_LOOKUP_EVENT(nfs4_mkdir);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1333) DEFINE_NFS4_LOOKUP_EVENT(nfs4_mknod);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1334) DEFINE_NFS4_LOOKUP_EVENT(nfs4_remove);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1335) DEFINE_NFS4_LOOKUP_EVENT(nfs4_get_fs_locations);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1336) DEFINE_NFS4_LOOKUP_EVENT(nfs4_secinfo);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1337)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1338) TRACE_EVENT(nfs4_lookupp,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1339) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1340) const struct inode *inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1341) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1342) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1343)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1344) TP_ARGS(inode, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1345)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1346) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1347) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1348) __field(u64, ino)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1349) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1350) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1351)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1352) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1353) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1354) __entry->ino = NFS_FILEID(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1355) __entry->error = error < 0 ? -error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1356) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1357)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1358) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1359) "error=%ld (%s) inode=%02x:%02x:%llu",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1360) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1361) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1362) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1363) (unsigned long long)__entry->ino
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1364) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1365) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1366)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1367) TRACE_EVENT(nfs4_rename,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1368) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1369) const struct inode *olddir,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1370) const struct qstr *oldname,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1371) const struct inode *newdir,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1372) const struct qstr *newname,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1373) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1374) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1375)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1376) TP_ARGS(olddir, oldname, newdir, newname, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1377)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1378) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1379) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1380) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1381) __field(u64, olddir)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1382) __string(oldname, oldname->name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1383) __field(u64, newdir)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1384) __string(newname, newname->name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1385) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1386)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1387) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1388) __entry->dev = olddir->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1389) __entry->olddir = NFS_FILEID(olddir);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1390) __entry->newdir = NFS_FILEID(newdir);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1391) __entry->error = error < 0 ? -error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1392) __assign_str(oldname, oldname->name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1393) __assign_str(newname, newname->name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1394) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1395)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1396) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1397) "error=%ld (%s) oldname=%02x:%02x:%llu/%s "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1398) "newname=%02x:%02x:%llu/%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1399) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1400) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1401) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1402) (unsigned long long)__entry->olddir,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1403) __get_str(oldname),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1404) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1405) (unsigned long long)__entry->newdir,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1406) __get_str(newname)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1407) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1408) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1409)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1410) DECLARE_EVENT_CLASS(nfs4_inode_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1411) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1412) const struct inode *inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1413) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1414) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1415)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1416) TP_ARGS(inode, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1417)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1418) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1419) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1420) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1421) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1422) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1423) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1424)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1425) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1426) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1427) __entry->fileid = NFS_FILEID(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1428) __entry->fhandle = nfs_fhandle_hash(NFS_FH(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1429) __entry->error = error < 0 ? -error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1430) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1431)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1432) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1433) "error=%ld (%s) fileid=%02x:%02x:%llu fhandle=0x%08x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1434) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1435) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1436) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1437) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1438) __entry->fhandle
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1439) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1440) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1441)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1442) #define DEFINE_NFS4_INODE_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1443) DEFINE_EVENT(nfs4_inode_event, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1444) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1445) const struct inode *inode, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1446) int error \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1447) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1448) TP_ARGS(inode, error))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1449)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1450) DEFINE_NFS4_INODE_EVENT(nfs4_access);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1451) DEFINE_NFS4_INODE_EVENT(nfs4_readlink);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1452) DEFINE_NFS4_INODE_EVENT(nfs4_readdir);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1453) DEFINE_NFS4_INODE_EVENT(nfs4_get_acl);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1454) DEFINE_NFS4_INODE_EVENT(nfs4_set_acl);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1455) #ifdef CONFIG_NFS_V4_SECURITY_LABEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1456) DEFINE_NFS4_INODE_EVENT(nfs4_get_security_label);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1457) DEFINE_NFS4_INODE_EVENT(nfs4_set_security_label);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1458) #endif /* CONFIG_NFS_V4_SECURITY_LABEL */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1459)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1460) DECLARE_EVENT_CLASS(nfs4_inode_stateid_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1461) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1462) const struct inode *inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1463) const nfs4_stateid *stateid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1464) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1465) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1466)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1467) TP_ARGS(inode, stateid, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1468)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1469) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1470) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1471) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1472) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1473) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1474) __field(int, stateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1475) __field(u32, stateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1476) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1477)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1478) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1479) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1480) __entry->fileid = NFS_FILEID(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1481) __entry->fhandle = nfs_fhandle_hash(NFS_FH(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1482) __entry->error = error < 0 ? -error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1483) __entry->stateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1484) be32_to_cpu(stateid->seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1485) __entry->stateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1486) nfs_stateid_hash(stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1487) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1488)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1489) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1490) "error=%ld (%s) fileid=%02x:%02x:%llu fhandle=0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1491) "stateid=%d:0x%08x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1492) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1493) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1494) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1495) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1496) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1497) __entry->stateid_seq, __entry->stateid_hash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1498) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1499) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1500)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1501) #define DEFINE_NFS4_INODE_STATEID_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1502) DEFINE_EVENT(nfs4_inode_stateid_event, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1503) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1504) const struct inode *inode, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1505) const nfs4_stateid *stateid, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1506) int error \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1507) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1508) TP_ARGS(inode, stateid, error))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1509)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1510) DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_setattr);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1511) DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_delegreturn);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1512) DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_open_stateid_update);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1513) DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_open_stateid_update_wait);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1514) DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_close_stateid_update_wait);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1515)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1516) DECLARE_EVENT_CLASS(nfs4_getattr_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1517) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1518) const struct nfs_server *server,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1519) const struct nfs_fh *fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1520) const struct nfs_fattr *fattr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1521) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1522) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1523)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1524) TP_ARGS(server, fhandle, fattr, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1525)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1526) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1527) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1528) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1529) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1530) __field(unsigned int, valid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1531) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1532) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1533)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1534) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1535) __entry->dev = server->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1536) __entry->valid = fattr->valid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1537) __entry->fhandle = nfs_fhandle_hash(fhandle);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1538) __entry->fileid = (fattr->valid & NFS_ATTR_FATTR_FILEID) ? fattr->fileid : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1539) __entry->error = error < 0 ? -error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1540) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1541)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1542) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1543) "error=%ld (%s) fileid=%02x:%02x:%llu fhandle=0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1544) "valid=%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1545) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1546) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1547) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1548) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1549) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1550) show_nfs_fattr_flags(__entry->valid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1551) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1552) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1553)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1554) #define DEFINE_NFS4_GETATTR_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1555) DEFINE_EVENT(nfs4_getattr_event, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1556) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1557) const struct nfs_server *server, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1558) const struct nfs_fh *fhandle, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1559) const struct nfs_fattr *fattr, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1560) int error \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1561) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1562) TP_ARGS(server, fhandle, fattr, error))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1563) DEFINE_NFS4_GETATTR_EVENT(nfs4_getattr);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1564) DEFINE_NFS4_GETATTR_EVENT(nfs4_lookup_root);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1565) DEFINE_NFS4_GETATTR_EVENT(nfs4_fsinfo);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1566)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1567) DECLARE_EVENT_CLASS(nfs4_inode_callback_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1568) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1569) const struct nfs_client *clp,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1570) const struct nfs_fh *fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1571) const struct inode *inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1572) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1573) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1574)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1575) TP_ARGS(clp, fhandle, inode, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1576)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1577) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1578) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1579) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1580) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1581) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1582) __string(dstaddr, clp ? clp->cl_hostname : "unknown")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1583) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1584)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1585) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1586) __entry->error = error < 0 ? -error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1587) __entry->fhandle = nfs_fhandle_hash(fhandle);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1588) if (!IS_ERR_OR_NULL(inode)) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1589) __entry->fileid = NFS_FILEID(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1590) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1591) } else {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1592) __entry->fileid = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1593) __entry->dev = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1594) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1595) __assign_str(dstaddr, clp ? clp->cl_hostname : "unknown")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1596) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1597)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1598) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1599) "error=%ld (%s) fileid=%02x:%02x:%llu fhandle=0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1600) "dstaddr=%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1601) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1602) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1603) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1604) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1605) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1606) __get_str(dstaddr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1607) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1608) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1609)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1610) #define DEFINE_NFS4_INODE_CALLBACK_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1611) DEFINE_EVENT(nfs4_inode_callback_event, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1612) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1613) const struct nfs_client *clp, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1614) const struct nfs_fh *fhandle, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1615) const struct inode *inode, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1616) int error \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1617) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1618) TP_ARGS(clp, fhandle, inode, error))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1619) DEFINE_NFS4_INODE_CALLBACK_EVENT(nfs4_cb_getattr);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1620)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1621) DECLARE_EVENT_CLASS(nfs4_inode_stateid_callback_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1622) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1623) const struct nfs_client *clp,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1624) const struct nfs_fh *fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1625) const struct inode *inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1626) const nfs4_stateid *stateid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1627) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1628) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1629)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1630) TP_ARGS(clp, fhandle, inode, stateid, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1631)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1632) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1633) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1634) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1635) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1636) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1637) __string(dstaddr, clp ? clp->cl_hostname : "unknown")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1638) __field(int, stateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1639) __field(u32, stateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1640) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1641)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1642) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1643) __entry->error = error < 0 ? -error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1644) __entry->fhandle = nfs_fhandle_hash(fhandle);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1645) if (!IS_ERR_OR_NULL(inode)) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1646) __entry->fileid = NFS_FILEID(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1647) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1648) } else {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1649) __entry->fileid = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1650) __entry->dev = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1651) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1652) __assign_str(dstaddr, clp ? clp->cl_hostname : "unknown")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1653) __entry->stateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1654) be32_to_cpu(stateid->seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1655) __entry->stateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1656) nfs_stateid_hash(stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1657) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1658)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1659) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1660) "error=%ld (%s) fileid=%02x:%02x:%llu fhandle=0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1661) "stateid=%d:0x%08x dstaddr=%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1662) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1663) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1664) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1665) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1666) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1667) __entry->stateid_seq, __entry->stateid_hash,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1668) __get_str(dstaddr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1669) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1670) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1671)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1672) #define DEFINE_NFS4_INODE_STATEID_CALLBACK_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1673) DEFINE_EVENT(nfs4_inode_stateid_callback_event, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1674) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1675) const struct nfs_client *clp, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1676) const struct nfs_fh *fhandle, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1677) const struct inode *inode, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1678) const nfs4_stateid *stateid, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1679) int error \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1680) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1681) TP_ARGS(clp, fhandle, inode, stateid, error))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1682) DEFINE_NFS4_INODE_STATEID_CALLBACK_EVENT(nfs4_cb_recall);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1683) DEFINE_NFS4_INODE_STATEID_CALLBACK_EVENT(nfs4_cb_layoutrecall_file);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1684)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1685) DECLARE_EVENT_CLASS(nfs4_idmap_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1686) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1687) const char *name,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1688) int len,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1689) u32 id,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1690) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1691) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1692)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1693) TP_ARGS(name, len, id, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1694)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1695) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1696) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1697) __field(u32, id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1698) __dynamic_array(char, name, len > 0 ? len + 1 : 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1699) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1700)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1701) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1702) if (len < 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1703) len = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1704) __entry->error = error < 0 ? error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1705) __entry->id = id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1706) memcpy(__get_str(name), name, len);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1707) __get_str(name)[len] = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1708) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1709)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1710) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1711) "error=%ld (%s) id=%u name=%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1712) -__entry->error, show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1713) __entry->id,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1714) __get_str(name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1715) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1716) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1717) #define DEFINE_NFS4_IDMAP_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1718) DEFINE_EVENT(nfs4_idmap_event, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1719) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1720) const char *name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1721) int len, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1722) u32 id, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1723) int error \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1724) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1725) TP_ARGS(name, len, id, error))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1726) DEFINE_NFS4_IDMAP_EVENT(nfs4_map_name_to_uid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1727) DEFINE_NFS4_IDMAP_EVENT(nfs4_map_group_to_gid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1728) DEFINE_NFS4_IDMAP_EVENT(nfs4_map_uid_to_name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1729) DEFINE_NFS4_IDMAP_EVENT(nfs4_map_gid_to_group);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1730)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1731) #ifdef CONFIG_NFS_V4_1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1732) #define NFS4_LSEG_LAYOUT_STATEID_HASH(lseg) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1733) (lseg ? nfs_stateid_hash(&lseg->pls_layout->plh_stateid) : 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1734) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1735) #define NFS4_LSEG_LAYOUT_STATEID_HASH(lseg) (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1736) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1737)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1738) DECLARE_EVENT_CLASS(nfs4_read_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1739) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1740) const struct nfs_pgio_header *hdr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1741) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1742) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1743)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1744) TP_ARGS(hdr, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1745)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1746) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1747) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1748) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1749) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1750) __field(loff_t, offset)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1751) __field(u32, arg_count)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1752) __field(u32, res_count)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1753) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1754) __field(int, stateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1755) __field(u32, stateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1756) __field(int, layoutstateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1757) __field(u32, layoutstateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1758) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1759)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1760) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1761) const struct inode *inode = hdr->inode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1762) const struct nfs_inode *nfsi = NFS_I(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1763) const struct nfs_fh *fh = hdr->args.fh ?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1764) hdr->args.fh : &nfsi->fh;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1765) const struct nfs4_state *state =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1766) hdr->args.context->state;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1767) const struct pnfs_layout_segment *lseg = hdr->lseg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1768)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1769) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1770) __entry->fileid = nfsi->fileid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1771) __entry->fhandle = nfs_fhandle_hash(fh);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1772) __entry->offset = hdr->args.offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1773) __entry->arg_count = hdr->args.count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1774) __entry->res_count = hdr->res.count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1775) __entry->error = error < 0 ? -error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1776) __entry->stateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1777) be32_to_cpu(state->stateid.seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1778) __entry->stateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1779) nfs_stateid_hash(&state->stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1780) __entry->layoutstateid_seq = lseg ? lseg->pls_seq : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1781) __entry->layoutstateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1782) NFS4_LSEG_LAYOUT_STATEID_HASH(lseg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1783) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1784)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1785) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1786) "error=%ld (%s) fileid=%02x:%02x:%llu fhandle=0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1787) "offset=%lld count=%u res=%u stateid=%d:0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1788) "layoutstateid=%d:0x%08x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1789) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1790) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1791) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1792) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1793) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1794) (long long)__entry->offset,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1795) __entry->arg_count, __entry->res_count,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1796) __entry->stateid_seq, __entry->stateid_hash,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1797) __entry->layoutstateid_seq, __entry->layoutstateid_hash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1798) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1799) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1800) #define DEFINE_NFS4_READ_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1801) DEFINE_EVENT(nfs4_read_event, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1802) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1803) const struct nfs_pgio_header *hdr, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1804) int error \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1805) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1806) TP_ARGS(hdr, error))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1807) DEFINE_NFS4_READ_EVENT(nfs4_read);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1808) #ifdef CONFIG_NFS_V4_1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1809) DEFINE_NFS4_READ_EVENT(nfs4_pnfs_read);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1810) #endif /* CONFIG_NFS_V4_1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1811)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1812) DECLARE_EVENT_CLASS(nfs4_write_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1813) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1814) const struct nfs_pgio_header *hdr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1815) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1816) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1817)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1818) TP_ARGS(hdr, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1819)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1820) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1821) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1822) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1823) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1824) __field(loff_t, offset)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1825) __field(u32, arg_count)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1826) __field(u32, res_count)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1827) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1828) __field(int, stateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1829) __field(u32, stateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1830) __field(int, layoutstateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1831) __field(u32, layoutstateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1832) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1833)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1834) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1835) const struct inode *inode = hdr->inode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1836) const struct nfs_inode *nfsi = NFS_I(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1837) const struct nfs_fh *fh = hdr->args.fh ?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1838) hdr->args.fh : &nfsi->fh;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1839) const struct nfs4_state *state =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1840) hdr->args.context->state;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1841) const struct pnfs_layout_segment *lseg = hdr->lseg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1842)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1843) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1844) __entry->fileid = nfsi->fileid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1845) __entry->fhandle = nfs_fhandle_hash(fh);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1846) __entry->offset = hdr->args.offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1847) __entry->arg_count = hdr->args.count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1848) __entry->res_count = hdr->res.count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1849) __entry->error = error < 0 ? -error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1850) __entry->stateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1851) be32_to_cpu(state->stateid.seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1852) __entry->stateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1853) nfs_stateid_hash(&state->stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1854) __entry->layoutstateid_seq = lseg ? lseg->pls_seq : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1855) __entry->layoutstateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1856) NFS4_LSEG_LAYOUT_STATEID_HASH(lseg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1857) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1858)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1859) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1860) "error=%ld (%s) fileid=%02x:%02x:%llu fhandle=0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1861) "offset=%lld count=%u res=%u stateid=%d:0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1862) "layoutstateid=%d:0x%08x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1863) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1864) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1865) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1866) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1867) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1868) (long long)__entry->offset,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1869) __entry->arg_count, __entry->res_count,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1870) __entry->stateid_seq, __entry->stateid_hash,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1871) __entry->layoutstateid_seq, __entry->layoutstateid_hash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1872) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1873) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1874)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1875) #define DEFINE_NFS4_WRITE_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1876) DEFINE_EVENT(nfs4_write_event, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1877) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1878) const struct nfs_pgio_header *hdr, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1879) int error \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1880) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1881) TP_ARGS(hdr, error))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1882) DEFINE_NFS4_WRITE_EVENT(nfs4_write);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1883) #ifdef CONFIG_NFS_V4_1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1884) DEFINE_NFS4_WRITE_EVENT(nfs4_pnfs_write);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1885) #endif /* CONFIG_NFS_V4_1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1886)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1887) DECLARE_EVENT_CLASS(nfs4_commit_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1888) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1889) const struct nfs_commit_data *data,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1890) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1891) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1892)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1893) TP_ARGS(data, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1894)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1895) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1896) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1897) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1898) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1899) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1900) __field(loff_t, offset)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1901) __field(u32, count)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1902) __field(int, layoutstateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1903) __field(u32, layoutstateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1904) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1905)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1906) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1907) const struct inode *inode = data->inode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1908) const struct nfs_inode *nfsi = NFS_I(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1909) const struct nfs_fh *fh = data->args.fh ?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1910) data->args.fh : &nfsi->fh;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1911) const struct pnfs_layout_segment *lseg = data->lseg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1912)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1913) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1914) __entry->fileid = nfsi->fileid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1915) __entry->fhandle = nfs_fhandle_hash(fh);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1916) __entry->offset = data->args.offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1917) __entry->count = data->args.count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1918) __entry->error = error < 0 ? -error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1919) __entry->layoutstateid_seq = lseg ? lseg->pls_seq : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1920) __entry->layoutstateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1921) NFS4_LSEG_LAYOUT_STATEID_HASH(lseg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1922) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1923)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1924) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1925) "error=%ld (%s) fileid=%02x:%02x:%llu fhandle=0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1926) "offset=%lld count=%u layoutstateid=%d:0x%08x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1927) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1928) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1929) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1930) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1931) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1932) (long long)__entry->offset,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1933) __entry->count,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1934) __entry->layoutstateid_seq, __entry->layoutstateid_hash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1935) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1936) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1937) #define DEFINE_NFS4_COMMIT_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1938) DEFINE_EVENT(nfs4_commit_event, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1939) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1940) const struct nfs_commit_data *data, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1941) int error \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1942) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1943) TP_ARGS(data, error))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1944) DEFINE_NFS4_COMMIT_EVENT(nfs4_commit);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1945) #ifdef CONFIG_NFS_V4_1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1946) DEFINE_NFS4_COMMIT_EVENT(nfs4_pnfs_commit_ds);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1947)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1948) TRACE_DEFINE_ENUM(IOMODE_READ);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1949) TRACE_DEFINE_ENUM(IOMODE_RW);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1950) TRACE_DEFINE_ENUM(IOMODE_ANY);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1951)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1952) #define show_pnfs_iomode(iomode) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1953) __print_symbolic(iomode, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1954) { IOMODE_READ, "READ" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1955) { IOMODE_RW, "RW" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1956) { IOMODE_ANY, "ANY" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1957)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1958) TRACE_EVENT(nfs4_layoutget,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1959) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1960) const struct nfs_open_context *ctx,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1961) const struct pnfs_layout_range *args,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1962) const struct pnfs_layout_range *res,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1963) const nfs4_stateid *layout_stateid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1964) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1965) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1966)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1967) TP_ARGS(ctx, args, res, layout_stateid, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1968)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1969) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1970) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1971) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1972) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1973) __field(u32, iomode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1974) __field(u64, offset)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1975) __field(u64, count)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1976) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1977) __field(int, stateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1978) __field(u32, stateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1979) __field(int, layoutstateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1980) __field(u32, layoutstateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1981) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1982)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1983) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1984) const struct inode *inode = d_inode(ctx->dentry);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1985) const struct nfs4_state *state = ctx->state;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1986) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1987) __entry->fileid = NFS_FILEID(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1988) __entry->fhandle = nfs_fhandle_hash(NFS_FH(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1989) __entry->iomode = args->iomode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1990) __entry->offset = args->offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1991) __entry->count = args->length;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1992) __entry->error = error < 0 ? -error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1993) __entry->stateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1994) be32_to_cpu(state->stateid.seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1995) __entry->stateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1996) nfs_stateid_hash(&state->stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1997) if (!error) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1998) __entry->layoutstateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1999) be32_to_cpu(layout_stateid->seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2000) __entry->layoutstateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2001) nfs_stateid_hash(layout_stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2002) } else {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2003) __entry->layoutstateid_seq = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2004) __entry->layoutstateid_hash = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2005) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2006) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2007)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2008) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2009) "error=%ld (%s) fileid=%02x:%02x:%llu fhandle=0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2010) "iomode=%s offset=%llu count=%llu stateid=%d:0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2011) "layoutstateid=%d:0x%08x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2012) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2013) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2014) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2015) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2016) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2017) show_pnfs_iomode(__entry->iomode),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2018) (unsigned long long)__entry->offset,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2019) (unsigned long long)__entry->count,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2020) __entry->stateid_seq, __entry->stateid_hash,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2021) __entry->layoutstateid_seq, __entry->layoutstateid_hash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2022) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2023) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2024)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2025) DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_layoutcommit);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2026) DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_layoutreturn);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2027) DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_layoutreturn_on_close);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2028) DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_layouterror);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2029) DEFINE_NFS4_INODE_STATEID_EVENT(nfs4_layoutstats);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2030)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2031) TRACE_DEFINE_ENUM(PNFS_UPDATE_LAYOUT_UNKNOWN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2032) TRACE_DEFINE_ENUM(PNFS_UPDATE_LAYOUT_NO_PNFS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2033) TRACE_DEFINE_ENUM(PNFS_UPDATE_LAYOUT_RD_ZEROLEN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2034) TRACE_DEFINE_ENUM(PNFS_UPDATE_LAYOUT_MDSTHRESH);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2035) TRACE_DEFINE_ENUM(PNFS_UPDATE_LAYOUT_NOMEM);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2036) TRACE_DEFINE_ENUM(PNFS_UPDATE_LAYOUT_BULK_RECALL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2037) TRACE_DEFINE_ENUM(PNFS_UPDATE_LAYOUT_IO_TEST_FAIL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2038) TRACE_DEFINE_ENUM(PNFS_UPDATE_LAYOUT_FOUND_CACHED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2039) TRACE_DEFINE_ENUM(PNFS_UPDATE_LAYOUT_RETURN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2040) TRACE_DEFINE_ENUM(PNFS_UPDATE_LAYOUT_BLOCKED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2041) TRACE_DEFINE_ENUM(PNFS_UPDATE_LAYOUT_INVALID_OPEN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2042) TRACE_DEFINE_ENUM(PNFS_UPDATE_LAYOUT_RETRY);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2043) TRACE_DEFINE_ENUM(PNFS_UPDATE_LAYOUT_SEND_LAYOUTGET);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2044) TRACE_DEFINE_ENUM(PNFS_UPDATE_LAYOUT_EXIT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2045)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2046) #define show_pnfs_update_layout_reason(reason) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2047) __print_symbolic(reason, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2048) { PNFS_UPDATE_LAYOUT_UNKNOWN, "unknown" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2049) { PNFS_UPDATE_LAYOUT_NO_PNFS, "no pnfs" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2050) { PNFS_UPDATE_LAYOUT_RD_ZEROLEN, "read+zerolen" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2051) { PNFS_UPDATE_LAYOUT_MDSTHRESH, "mdsthresh" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2052) { PNFS_UPDATE_LAYOUT_NOMEM, "nomem" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2053) { PNFS_UPDATE_LAYOUT_BULK_RECALL, "bulk recall" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2054) { PNFS_UPDATE_LAYOUT_IO_TEST_FAIL, "io test fail" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2055) { PNFS_UPDATE_LAYOUT_FOUND_CACHED, "found cached" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2056) { PNFS_UPDATE_LAYOUT_RETURN, "layoutreturn" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2057) { PNFS_UPDATE_LAYOUT_BLOCKED, "layouts blocked" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2058) { PNFS_UPDATE_LAYOUT_INVALID_OPEN, "invalid open" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2059) { PNFS_UPDATE_LAYOUT_RETRY, "retrying" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2060) { PNFS_UPDATE_LAYOUT_SEND_LAYOUTGET, "sent layoutget" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2061) { PNFS_UPDATE_LAYOUT_EXIT, "exit" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2062)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2063) TRACE_EVENT(pnfs_update_layout,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2064) TP_PROTO(struct inode *inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2065) loff_t pos,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2066) u64 count,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2067) enum pnfs_iomode iomode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2068) struct pnfs_layout_hdr *lo,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2069) struct pnfs_layout_segment *lseg,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2070) enum pnfs_update_layout_reason reason
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2071) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2072) TP_ARGS(inode, pos, count, iomode, lo, lseg, reason),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2073) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2074) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2075) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2076) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2077) __field(loff_t, pos)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2078) __field(u64, count)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2079) __field(enum pnfs_iomode, iomode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2080) __field(int, layoutstateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2081) __field(u32, layoutstateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2082) __field(long, lseg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2083) __field(enum pnfs_update_layout_reason, reason)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2084) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2085) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2086) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2087) __entry->fileid = NFS_FILEID(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2088) __entry->fhandle = nfs_fhandle_hash(NFS_FH(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2089) __entry->pos = pos;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2090) __entry->count = count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2091) __entry->iomode = iomode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2092) __entry->reason = reason;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2093) if (lo != NULL) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2094) __entry->layoutstateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2095) be32_to_cpu(lo->plh_stateid.seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2096) __entry->layoutstateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2097) nfs_stateid_hash(&lo->plh_stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2098) } else {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2099) __entry->layoutstateid_seq = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2100) __entry->layoutstateid_hash = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2101) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2102) __entry->lseg = (long)lseg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2103) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2104) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2105) "fileid=%02x:%02x:%llu fhandle=0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2106) "iomode=%s pos=%llu count=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2107) "layoutstateid=%d:0x%08x lseg=0x%lx (%s)",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2108) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2109) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2110) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2111) show_pnfs_iomode(__entry->iomode),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2112) (unsigned long long)__entry->pos,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2113) (unsigned long long)__entry->count,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2114) __entry->layoutstateid_seq, __entry->layoutstateid_hash,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2115) __entry->lseg,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2116) show_pnfs_update_layout_reason(__entry->reason)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2117) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2118) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2119)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2120) DECLARE_EVENT_CLASS(pnfs_layout_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2121) TP_PROTO(struct inode *inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2122) loff_t pos,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2123) u64 count,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2124) enum pnfs_iomode iomode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2125) struct pnfs_layout_hdr *lo,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2126) struct pnfs_layout_segment *lseg
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2127) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2128) TP_ARGS(inode, pos, count, iomode, lo, lseg),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2129) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2130) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2131) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2132) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2133) __field(loff_t, pos)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2134) __field(u64, count)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2135) __field(enum pnfs_iomode, iomode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2136) __field(int, layoutstateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2137) __field(u32, layoutstateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2138) __field(long, lseg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2139) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2140) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2141) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2142) __entry->fileid = NFS_FILEID(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2143) __entry->fhandle = nfs_fhandle_hash(NFS_FH(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2144) __entry->pos = pos;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2145) __entry->count = count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2146) __entry->iomode = iomode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2147) if (lo != NULL) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2148) __entry->layoutstateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2149) be32_to_cpu(lo->plh_stateid.seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2150) __entry->layoutstateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2151) nfs_stateid_hash(&lo->plh_stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2152) } else {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2153) __entry->layoutstateid_seq = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2154) __entry->layoutstateid_hash = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2155) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2156) __entry->lseg = (long)lseg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2157) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2158) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2159) "fileid=%02x:%02x:%llu fhandle=0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2160) "iomode=%s pos=%llu count=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2161) "layoutstateid=%d:0x%08x lseg=0x%lx",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2162) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2163) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2164) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2165) show_pnfs_iomode(__entry->iomode),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2166) (unsigned long long)__entry->pos,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2167) (unsigned long long)__entry->count,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2168) __entry->layoutstateid_seq, __entry->layoutstateid_hash,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2169) __entry->lseg
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2170) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2171) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2172)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2173) #define DEFINE_PNFS_LAYOUT_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2174) DEFINE_EVENT(pnfs_layout_event, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2175) TP_PROTO(struct inode *inode, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2176) loff_t pos, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2177) u64 count, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2178) enum pnfs_iomode iomode, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2179) struct pnfs_layout_hdr *lo, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2180) struct pnfs_layout_segment *lseg \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2181) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2182) TP_ARGS(inode, pos, count, iomode, lo, lseg))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2183)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2184) DEFINE_PNFS_LAYOUT_EVENT(pnfs_mds_fallback_pg_init_read);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2185) DEFINE_PNFS_LAYOUT_EVENT(pnfs_mds_fallback_pg_init_write);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2186) DEFINE_PNFS_LAYOUT_EVENT(pnfs_mds_fallback_pg_get_mirror_count);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2187) DEFINE_PNFS_LAYOUT_EVENT(pnfs_mds_fallback_read_done);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2188) DEFINE_PNFS_LAYOUT_EVENT(pnfs_mds_fallback_write_done);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2189) DEFINE_PNFS_LAYOUT_EVENT(pnfs_mds_fallback_read_pagelist);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2190) DEFINE_PNFS_LAYOUT_EVENT(pnfs_mds_fallback_write_pagelist);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2191)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2192) DECLARE_EVENT_CLASS(nfs4_flexfiles_io_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2193) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2194) const struct nfs_pgio_header *hdr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2195) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2196)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2197) TP_ARGS(hdr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2198)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2199) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2200) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2201) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2202) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2203) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2204) __field(loff_t, offset)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2205) __field(u32, count)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2206) __field(int, stateid_seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2207) __field(u32, stateid_hash)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2208) __string(dstaddr, hdr->ds_clp ?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2209) rpc_peeraddr2str(hdr->ds_clp->cl_rpcclient,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2210) RPC_DISPLAY_ADDR) : "unknown")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2211) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2212)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2213) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2214) const struct inode *inode = hdr->inode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2215)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2216) __entry->error = hdr->res.op_status;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2217) __entry->fhandle = nfs_fhandle_hash(hdr->args.fh);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2218) __entry->fileid = NFS_FILEID(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2219) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2220) __entry->offset = hdr->args.offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2221) __entry->count = hdr->args.count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2222) __entry->stateid_seq =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2223) be32_to_cpu(hdr->args.stateid.seqid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2224) __entry->stateid_hash =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2225) nfs_stateid_hash(&hdr->args.stateid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2226) __assign_str(dstaddr, hdr->ds_clp ?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2227) rpc_peeraddr2str(hdr->ds_clp->cl_rpcclient,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2228) RPC_DISPLAY_ADDR) : "unknown");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2229) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2230)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2231) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2232) "error=%ld (%s) fileid=%02x:%02x:%llu fhandle=0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2233) "offset=%llu count=%u stateid=%d:0x%08x dstaddr=%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2234) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2235) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2236) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2237) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2238) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2239) __entry->offset, __entry->count,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2240) __entry->stateid_seq, __entry->stateid_hash,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2241) __get_str(dstaddr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2242) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2243) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2244)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2245) #define DEFINE_NFS4_FLEXFILES_IO_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2246) DEFINE_EVENT(nfs4_flexfiles_io_event, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2247) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2248) const struct nfs_pgio_header *hdr \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2249) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2250) TP_ARGS(hdr))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2251) DEFINE_NFS4_FLEXFILES_IO_EVENT(ff_layout_read_error);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2252) DEFINE_NFS4_FLEXFILES_IO_EVENT(ff_layout_write_error);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2253)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2254) TRACE_EVENT(ff_layout_commit_error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2255) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2256) const struct nfs_commit_data *data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2257) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2258)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2259) TP_ARGS(data),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2260)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2261) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2262) __field(unsigned long, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2263) __field(dev_t, dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2264) __field(u32, fhandle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2265) __field(u64, fileid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2266) __field(loff_t, offset)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2267) __field(u32, count)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2268) __string(dstaddr, data->ds_clp ?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2269) rpc_peeraddr2str(data->ds_clp->cl_rpcclient,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2270) RPC_DISPLAY_ADDR) : "unknown")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2271) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2272)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2273) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2274) const struct inode *inode = data->inode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2275)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2276) __entry->error = data->res.op_status;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2277) __entry->fhandle = nfs_fhandle_hash(data->args.fh);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2278) __entry->fileid = NFS_FILEID(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2279) __entry->dev = inode->i_sb->s_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2280) __entry->offset = data->args.offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2281) __entry->count = data->args.count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2282) __assign_str(dstaddr, data->ds_clp ?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2283) rpc_peeraddr2str(data->ds_clp->cl_rpcclient,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2284) RPC_DISPLAY_ADDR) : "unknown");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2285) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2286)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2287) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2288) "error=%ld (%s) fileid=%02x:%02x:%llu fhandle=0x%08x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2289) "offset=%llu count=%u dstaddr=%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2290) -__entry->error,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2291) show_nfsv4_errors(__entry->error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2292) MAJOR(__entry->dev), MINOR(__entry->dev),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2293) (unsigned long long)__entry->fileid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2294) __entry->fhandle,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2295) __entry->offset, __entry->count,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2296) __get_str(dstaddr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2297) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2298) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2299)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2300)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2301) #endif /* CONFIG_NFS_V4_1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2302)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2303) #endif /* _TRACE_NFS4_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2304)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2305) #undef TRACE_INCLUDE_PATH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2306) #define TRACE_INCLUDE_PATH .
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2307) #define TRACE_INCLUDE_FILE nfs4trace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2308) /* This part must be outside protection */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2309) #include <trace/define_trace.h>