This file is indexed.

/usr/share/systemtap/tapset/nfsderrno.stp is in systemtap-common 1.7-1+deb7u1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
// nfsd errnos tapset
// Copyright (C) 2010 Red Hat Inc.
//
// This file is part of systemtap, and is free software.  You can
// redistribute it and/or modify it under the terms of the GNU General
// Public License (GPL); either version 2, or (at your option) any
// later version.

%{
#include <linux/nfs.h>
#include <linux/nfs4.h>

#define	nfs_ok			__constant_htonl(NFS_OK)
#define	nfserr_perm		__constant_htonl(NFSERR_PERM)
#define	nfserr_noent		__constant_htonl(NFSERR_NOENT)
#define	nfserr_io		__constant_htonl(NFSERR_IO)
#define	nfserr_nxio		__constant_htonl(NFSERR_NXIO)
#define	nfserr_eagain		__constant_htonl(NFSERR_EAGAIN)
#define	nfserr_acces		__constant_htonl(NFSERR_ACCES)
#define	nfserr_exist		__constant_htonl(NFSERR_EXIST)
#define	nfserr_xdev		__constant_htonl(NFSERR_XDEV)
#define	nfserr_nodev		__constant_htonl(NFSERR_NODEV)
#define	nfserr_notdir		__constant_htonl(NFSERR_NOTDIR)
#define	nfserr_isdir		__constant_htonl(NFSERR_ISDIR)
#define	nfserr_inval		__constant_htonl(NFSERR_INVAL)
#define	nfserr_fbig		__constant_htonl(NFSERR_FBIG)
#define	nfserr_nospc		__constant_htonl(NFSERR_NOSPC)
#define	nfserr_rofs		__constant_htonl(NFSERR_ROFS)
#define	nfserr_mlink		__constant_htonl(NFSERR_MLINK)
#define	nfserr_opnotsupp	__constant_htonl(NFSERR_OPNOTSUPP)
#define	nfserr_nametoolong	__constant_htonl(NFSERR_NAMETOOLONG)
#define	nfserr_notempty		__constant_htonl(NFSERR_NOTEMPTY)
#define	nfserr_dquot		__constant_htonl(NFSERR_DQUOT)
#define	nfserr_stale		__constant_htonl(NFSERR_STALE)
#define	nfserr_remote		__constant_htonl(NFSERR_REMOTE)
#define	nfserr_wflush		__constant_htonl(NFSERR_WFLUSH)
#define	nfserr_badhandle	__constant_htonl(NFSERR_BADHANDLE)
#define	nfserr_notsync		__constant_htonl(NFSERR_NOT_SYNC)
#define	nfserr_badcookie	__constant_htonl(NFSERR_BAD_COOKIE)
#define	nfserr_notsupp		__constant_htonl(NFSERR_NOTSUPP)
#define	nfserr_toosmall		__constant_htonl(NFSERR_TOOSMALL)
#define	nfserr_serverfault	__constant_htonl(NFSERR_SERVERFAULT)
#define	nfserr_badtype		__constant_htonl(NFSERR_BADTYPE)
#define	nfserr_jukebox		__constant_htonl(NFSERR_JUKEBOX)
#define	nfserr_denied		__constant_htonl(NFSERR_DENIED)
#define	nfserr_deadlock		__constant_htonl(NFSERR_DEADLOCK)
#define nfserr_expired          __constant_htonl(NFSERR_EXPIRED)
#define	nfserr_bad_cookie	__constant_htonl(NFSERR_BAD_COOKIE)
#define	nfserr_same		__constant_htonl(NFSERR_SAME)
#define	nfserr_clid_inuse	__constant_htonl(NFSERR_CLID_INUSE)
#define	nfserr_stale_clientid	__constant_htonl(NFSERR_STALE_CLIENTID)
#define	nfserr_resource		__constant_htonl(NFSERR_RESOURCE)
#define	nfserr_moved		__constant_htonl(NFSERR_MOVED)
#define	nfserr_nofilehandle	__constant_htonl(NFSERR_NOFILEHANDLE)
#define	nfserr_minor_vers_mismatch	__constant_htonl(NFSERR_MINOR_VERS_MISMATCH)
#define nfserr_share_denied	__constant_htonl(NFSERR_SHARE_DENIED)
#define nfserr_stale_stateid	__constant_htonl(NFSERR_STALE_STATEID)
#define nfserr_old_stateid	__constant_htonl(NFSERR_OLD_STATEID)
#define nfserr_bad_stateid	__constant_htonl(NFSERR_BAD_STATEID)
#define nfserr_bad_seqid	__constant_htonl(NFSERR_BAD_SEQID)
#define	nfserr_symlink		__constant_htonl(NFSERR_SYMLINK)
#define	nfserr_not_same		__constant_htonl(NFSERR_NOT_SAME)
#define	nfserr_restorefh	__constant_htonl(NFSERR_RESTOREFH)
#define	nfserr_attrnotsupp	__constant_htonl(NFSERR_ATTRNOTSUPP)
#define	nfserr_bad_xdr		__constant_htonl(NFSERR_BAD_XDR)
#define	nfserr_openmode		__constant_htonl(NFSERR_OPENMODE)
#define	nfserr_locks_held	__constant_htonl(NFSERR_LOCKS_HELD)
#define	nfserr_op_illegal	__constant_htonl(NFSERR_OP_ILLEGAL)
#define	nfserr_grace		__constant_htonl(NFSERR_GRACE)
#define	nfserr_no_grace		__constant_htonl(NFSERR_NO_GRACE)
#define	nfserr_reclaim_bad	__constant_htonl(NFSERR_RECLAIM_BAD)
#define	nfserr_badname		__constant_htonl(NFSERR_BADNAME)
#define	nfserr_cb_path_down	__constant_htonl(NFSERR_CB_PATH_DOWN)
#define	nfserr_locked		__constant_htonl(NFSERR_LOCKED)
#define	nfserr_wrongsec		__constant_htonl(NFSERR_WRONGSEC)
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,30)
#define nfserr_badiomode		__constant_htonl(NFS4ERR_BADIOMODE)
#define nfserr_badlayout		__constant_htonl(NFS4ERR_BADLAYOUT)
#define nfserr_bad_session_digest	__constant_htonl(NFS4ERR_BAD_SESSION_DIGEST)
#define nfserr_badsession		__constant_htonl(NFS4ERR_BADSESSION)
#define nfserr_badslot			__constant_htonl(NFS4ERR_BADSLOT)
#define nfserr_complete_already		__constant_htonl(NFS4ERR_COMPLETE_ALREADY)
#define nfserr_conn_not_bound_to_session __constant_htonl(NFS4ERR_CONN_NOT_BOUND_TO_SESSION)
#define nfserr_deleg_already_wanted	__constant_htonl(NFS4ERR_DELEG_ALREADY_WANTED)
#define nfserr_back_chan_busy		__constant_htonl(NFS4ERR_BACK_CHAN_BUSY)
#define nfserr_layouttrylater		__constant_htonl(NFS4ERR_LAYOUTTRYLATER)
#define nfserr_layoutunavailable	__constant_htonl(NFS4ERR_LAYOUTUNAVAILABLE)
#define nfserr_nomatching_layout	__constant_htonl(NFS4ERR_NOMATCHING_LAYOUT)
#define nfserr_recallconflict		__constant_htonl(NFS4ERR_RECALLCONFLICT)
#define nfserr_unknown_layouttype	__constant_htonl(NFS4ERR_UNKNOWN_LAYOUTTYPE)
#define nfserr_seq_misordered		__constant_htonl(NFS4ERR_SEQ_MISORDERED)
#define nfserr_sequence_pos		__constant_htonl(NFS4ERR_SEQUENCE_POS)
#define nfserr_req_too_big		__constant_htonl(NFS4ERR_REQ_TOO_BIG)
#define nfserr_rep_too_big		__constant_htonl(NFS4ERR_REP_TOO_BIG)
#define nfserr_rep_too_big_to_cache	__constant_htonl(NFS4ERR_REP_TOO_BIG_TO_CACHE)
#define nfserr_retry_uncached_rep	__constant_htonl(NFS4ERR_RETRY_UNCACHED_REP)
#define nfserr_unsafe_compound		__constant_htonl(NFS4ERR_UNSAFE_COMPOUND)
#define nfserr_too_many_ops		__constant_htonl(NFS4ERR_TOO_MANY_OPS)
#define nfserr_op_not_in_session	__constant_htonl(NFS4ERR_OP_NOT_IN_SESSION)
#define nfserr_hash_alg_unsupp		__constant_htonl(NFS4ERR_HASH_ALG_UNSUPP)
#define nfserr_clientid_busy		__constant_htonl(NFS4ERR_CLIENTID_BUSY)
#define nfserr_pnfs_io_hole		__constant_htonl(NFS4ERR_PNFS_IO_HOLE)
#define nfserr_seq_false_retry		__constant_htonl(NFS4ERR_SEQ_FALSE_RETRY)
#define nfserr_bad_high_slot		__constant_htonl(NFS4ERR_BAD_HIGH_SLOT)
#define nfserr_deadsession		__constant_htonl(NFS4ERR_DEADSESSION)
#define nfserr_encr_alg_unsupp		__constant_htonl(NFS4ERR_ENCR_ALG_UNSUPP)
#define nfserr_pnfs_no_layout		__constant_htonl(NFS4ERR_PNFS_NO_LAYOUT)
#define nfserr_not_only_op		__constant_htonl(NFS4ERR_NOT_ONLY_OP)
#define nfserr_wrong_cred		__constant_htonl(NFS4ERR_WRONG_CRED)
#define nfserr_wrong_type		__constant_htonl(NFS4ERR_WRONG_TYPE)
#define nfserr_dirdeleg_unavail		__constant_htonl(NFS4ERR_DIRDELEG_UNAVAIL)
#define nfserr_reject_deleg		__constant_htonl(NFS4ERR_REJECT_DELEG)
#define nfserr_returnconflict		__constant_htonl(NFS4ERR_RETURNCONFLICT)
#define nfserr_deleg_revoked		__constant_htonl(NFS4ERR_DELEG_REVOKED)
#endif
%}

/**
 * sfunction nfsderror - Convert nfsd error number into string
 * @err: errnum
 *
 * Description: This function returns a string for the error number
 * passed into the function.
 */
function nfsderror:string(err:long) 
%{
	static struct {
		int	nfserr;
		char *string;
	} nfs_errtbl[] = {
		{nfs_ok, "NFS_OK"},
		{nfserr_perm, "NFSERR_PERM"},
		{nfserr_noent, "NFSERR_NOENT"},
		{nfserr_io, "NFSERR_IO"},
		{nfserr_nxio, "NFSERR_NXIO"},
		{nfserr_eagain, "NFSERR_EAGAIN"},
		{nfserr_acces, "NFSERR_ACCES"},
		{nfserr_exist, "NFSERR_EXIST"},
		{nfserr_xdev, "NFSERR_XDEV"},
		{nfserr_nodev, "NFSERR_NODEV"},
		{nfserr_notdir, "NFSERR_NOTDIR"},
		{nfserr_isdir, "NFSERR_ISDIR"},
		{nfserr_inval, "NFSERR_INVAL"},
		{nfserr_fbig, "NFSERR_FBIG"},
		{nfserr_nospc, "NFSERR_NOSPC"},
		{nfserr_rofs, "NFSERR_ROFS"},
		{nfserr_mlink, "NFSERR_MLINK"},
		{nfserr_opnotsupp, "NFSERR_OPNOTSUPP"},
		{nfserr_nametoolong, "NFSERR_NAMETOOLONG"},
		{nfserr_notempty, "NFSERR_NOTEMPTY"},
		{nfserr_dquot, "NFSERR_DQUOT"},
		{nfserr_stale, "NFSERR_STALE"},
		{nfserr_remote, "NFSERR_REMOTE"},
		{nfserr_wflush, "NFSERR_WFLUSH"},
		{nfserr_badhandle, "NFSERR_BADHANDLE"},
		{nfserr_notsync, "NFSERR_NOT_SYNC"},
		{nfserr_badcookie, "NFSERR_BAD_COOKIE"},
		{nfserr_notsupp, "NFSERR_NOTSUPP"},
		{nfserr_toosmall, "NFSERR_TOOSMALL"},
		{nfserr_serverfault, "NFSERR_SERVERFAULT"},
		{nfserr_badtype, "NFSERR_BADTYPE"},
		{nfserr_jukebox, "NFSERR_JUKEBOX"},
		{nfserr_denied, "NFSERR_DENIED"},
		{nfserr_deadlock, "NFSERR_DEADLOCK"},
		{nfserr_expired, "NFSERR_EXPIRED"},
		{nfserr_bad_cookie, "NFSERR_BAD_COOKIE"},
		{nfserr_same, "NFSERR_SAME"},
		{nfserr_clid_inuse, "NFSERR_CLID_INUSE"},
		{nfserr_stale_clientid, "NFSERR_STALE_CLIENTID"},
		{nfserr_resource, "NFSERR_RESOURCE"},
		{nfserr_moved, "NFSERR_MOVED"},
		{nfserr_nofilehandle, "NFSERR_NOFILEHANDLE"},
		{nfserr_minor_vers_mismatch, "NFSERR_MINOR_VERS_MISMATCH"},
		{nfserr_share_denied, "NFSERR_SHARE_DENIED"},
		{nfserr_stale_stateid, "NFSERR_STALE_STATEID"},
		{nfserr_old_stateid, "NFSERR_OLD_STATEID"},
		{nfserr_bad_stateid, "NFSERR_BAD_STATEID"},
		{nfserr_bad_seqid, "NFSERR_BAD_SEQID"},
		{nfserr_symlink , "NFSERR_SYMLINK"},
		{nfserr_not_same , "NFSERR_NOT_SAME"},
		{nfserr_restorefh , "NFSERR_RESTOREFH"},
		{nfserr_attrnotsupp, "NFSERR_ATTRNOTSUPP"},
		{nfserr_bad_xdr, "NFSERR_BAD_XDR"},
		{nfserr_openmode, "NFSERR_OPENMODE"},
		{nfserr_locks_held, "NFSERR_LOCKS_HELD"},
		{nfserr_op_illegal, "NFSERR_OP_ILLEGAL"},
		{nfserr_grace, "NFSERR_GRACE"},
		{nfserr_no_grace, "NFSERR_NO_GRACE"},
		{nfserr_reclaim_bad, "NFSERR_RECLAIM_BAD"},
		{nfserr_badname, "NFSERR_BADNAME"},
		{nfserr_cb_path_down, "NFSERR_CB_PATH_DOWN"},
		{nfserr_locked, "NFSERR_LOCKED"},
		{nfserr_wrongsec, "NFSERR_WRONGSEC"},
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,30)
		{nfserr_badiomode, "NFS4ERR_BADIOMODE"},
		{nfserr_badlayout, "NFS4ERR_BADLAYOUT"},
		{nfserr_bad_session_digest, "NFS4ERR_BAD_SESSION_DIGEST"},
		{nfserr_badsession, "NFS4ERR_BADSESSION"},
		{nfserr_badslot, "NFS4ERR_BADSLOT"},
		{nfserr_complete_already, "NFS4ERR_COMPLETE_ALREADY"},
		{nfserr_conn_not_bound_to_session, "NFS4ERR_CONN_NOT_BOUND_TO_SESSION"},
		{nfserr_deleg_already_wanted, "NFS4ERR_DELEG_ALREADY_WANTED"},
		{nfserr_back_chan_busy, "NFS4ERR_BACK_CHAN_BUSY"},
		{nfserr_layouttrylater, "NFS4ERR_LAYOUTTRYLATER"},
		{nfserr_layoutunavailable, "NFS4ERR_LAYOUTUNAVAILABLE"},
		{nfserr_nomatching_layout, "NFS4ERR_NOMATCHING_LAYOUT"},
		{nfserr_recallconflict, "NFS4ERR_RECALLCONFLICT"},
		{nfserr_unknown_layouttype, "NFS4ERR_UNKNOWN_LAYOUTTYPE"},
		{nfserr_seq_misordered, "NFS4ERR_SEQ_MISORDERED"},
		{nfserr_sequence_pos, "NFS4ERR_SEQUENCE_POS"},
		{nfserr_req_too_big, "NFS4ERR_REQ_TOO_BIG"},
		{nfserr_rep_too_big, "NFS4ERR_REP_TOO_BIG"},
		{nfserr_rep_too_big_to_cache, "NFS4ERR_REP_TOO_BIG_TO_CACHE"},
		{nfserr_retry_uncached_rep, "NFS4ERR_RETRY_UNCACHED_REP"},
		{nfserr_unsafe_compound, "NFS4ERR_UNSAFE_COMPOUND"},
		{nfserr_too_many_ops, "NFS4ERR_TOO_MANY_OPS"},
		{nfserr_op_not_in_session, "NFS4ERR_OP_NOT_IN_SESSION"},
		{nfserr_hash_alg_unsupp, "NFS4ERR_HASH_ALG_UNSUPP"},
		{nfserr_clientid_busy, "NFS4ERR_CLIENTID_BUSY"},
		{nfserr_pnfs_io_hole, "NFS4ERR_PNFS_IO_HOLE"},
		{nfserr_seq_false_retry, "NFS4ERR_SEQ_FALSE_RETRY"},
		{nfserr_bad_high_slot, "NFS4ERR_BAD_HIGH_SLOT"},
		{nfserr_deadsession, "NFS4ERR_DEADSESSION"},
		{nfserr_encr_alg_unsupp, "NFS4ERR_ENCR_ALG_UNSUPP"},
		{nfserr_pnfs_no_layout, "NFS4ERR_PNFS_NO_LAYOUT"},
		{nfserr_not_only_op, "NFS4ERR_NOT_ONLY_OP"},
		{nfserr_wrong_cred, "NFS4ERR_WRONG_CRED"},
		{nfserr_wrong_type, "NFS4ERR_WRONG_TYPE"},
		{nfserr_dirdeleg_unavail, "NFS4ERR_DIRDELEG_UNAVAIL"},
		{nfserr_reject_deleg, "NFS4ERR_REJECT_DELEG"},
		{nfserr_returnconflict, "NFS4ERR_RETURNCONFLICT"},
		{nfserr_deleg_revoked, "NFS4ERR_DELEG_REVOKED"},
#endif
	};
	int	i;
	int tabsz = (sizeof(nfs_errtbl)/sizeof(nfs_errtbl[0]));

	for (i = 0; i < tabsz; i++) {
		if (nfs_errtbl[i].nfserr == THIS->err) {
			break;
		}
	}
	if (i == tabsz)
		snprintf(THIS->__retvalue, MAXSTRINGLEN, "nfsderr %d", ntohl(THIS->err));
	else
		snprintf(THIS->__retvalue, MAXSTRINGLEN, 
			"nfsderr %d(%s)", ntohl(nfs_errtbl[i].nfserr), nfs_errtbl[i].string);

%}