Whamcloud - gitweb
LU-19098 hsm: don't print progname twice with lhsmtool
[fs/lustre-release.git] / lustre / include / obd_support.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2
3 /*
4  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
5  * Use is subject to license terms.
6  *
7  * Copyright (c) 2011, 2017, Intel Corporation.
8  */
9
10 /*
11  * This file is part of Lustre, http://www.lustre.org/
12  */
13
14 #ifndef _OBD_SUPPORT
15 #define _OBD_SUPPORT
16
17 #include <linux/atomic.h>
18 #include <linux/ctype.h>
19 #include <linux/highmem.h>
20 #include <linux/slab.h>
21 #include <linux/types.h>
22 #include <linux/percpu_counter.h>
23
24 #include <libcfs/libcfs.h>
25 #include <lnet/lib-cpt.h>
26 #include <lprocfs_status.h>
27 #include <lustre_handles.h>
28 #include <uapi/linux/lustre/lustre_idl.h>
29 #include <uapi/linux/lustre/lgss.h>
30
31 /* global variables */
32 extern struct percpu_counter obd_memory;
33
34 extern unsigned int obd_debug_peer_on_timeout;
35 extern unsigned int obd_dump_on_timeout;
36 extern unsigned int obd_dump_on_eviction;
37 extern unsigned int obd_lbug_on_eviction;
38 /* obd_timeout should only be used for recovery, not for
39  * networking / disk / timings affected by load (use Adaptive Timeouts)
40  */
41 extern unsigned int obd_timeout;          /* seconds */
42 extern unsigned int ldlm_timeout;         /* seconds */
43 extern unsigned int ping_interval;        /* seconds */
44 extern unsigned int obd_timeout_set;
45 extern unsigned int ldlm_timeout_set;
46 extern unsigned int bulk_timeout;
47 extern unsigned int at_min;
48 extern unsigned int at_max;
49 extern unsigned int at_history;
50 extern unsigned int at_unhealthy_factor;
51 extern int at_early_margin;
52 extern int at_extra;
53 extern unsigned long obd_max_dirty_pages;
54 extern atomic_long_t obd_dirty_pages;
55 extern char obd_jobid_var[];
56 extern bool obd_enable_health_write;
57 extern bool obd_enable_fname_encoding;
58
59 /* Some hash init argument constants */
60 #define HASH_NID_STATS_BKT_BITS 5
61 #define HASH_NID_STATS_CUR_BITS 7
62 #define HASH_NID_STATS_MAX_BITS 12
63 #define HASH_GEN_BKT_BITS 5
64 #define HASH_GEN_CUR_BITS 7
65 #define HASH_GEN_MAX_BITS 12
66 #define HASH_LQE_BKT_BITS 5
67 #define HASH_LQE_CUR_BITS 7
68 #define HASH_LQE_MAX_BITS 12
69 #define HASH_EXP_LOCK_BKT_BITS  5
70 #define HASH_EXP_LOCK_CUR_BITS  7
71 #define HASH_EXP_LOCK_MAX_BITS  16
72
73 /* Timeout definitions */
74 #define OBD_TIMEOUT_DEFAULT             100
75 #define LDLM_TIMEOUT_DEFAULT            20
76 #define MDS_LDLM_TIMEOUT_DEFAULT        6
77 /* Time to wait for all clients to reconnect during recovery (hard limit) */
78 #define OBD_RECOVERY_TIME_HARD          (obd_timeout * 9)
79 /* Time to wait for all clients to reconnect during recovery (soft limit) */
80 /* Should be very conservative; must catch the first reconnect after reboot */
81 #define OBD_RECOVERY_TIME_SOFT          (obd_timeout * 3)
82 /* Change recovery-small 26b time if you change this */
83 #define PING_INTERVAL ping_interval
84 /* a bit more than maximal journal commit time in seconds */
85 #define PING_INTERVAL_SHORT min(PING_INTERVAL, 7U)
86 /* Client may skip 1 ping; we must wait at least 2.5. But for multiple
87  * failover targets the client only pings one server at a time, and pings
88  * can be lost on a loaded network. Since eviction has serious consequences,
89  * and there's no urgent need to evict a client just because it's idle, we
90  * should be very conservative here.
91  */
92 #define PING_EVICT_TIMEOUT (PING_INTERVAL * 6)
93 #define DISK_TIMEOUT 50          /* Beyond this we warn about disk speed */
94 #define CONNECTION_SWITCH_MIN 5U /* Connection switching rate limiter */
95  /* Max connect interval for nonresponsive servers; ~50s to avoid building up
96   * connect requests in the LND queues, but within obd_timeout so we don't
97   * miss the recovery window
98   */
99 #define CONNECTION_SWITCH_MAX min(50U, max(CONNECTION_SWITCH_MIN, obd_timeout))
100 #define CONNECTION_SWITCH_INC 5  /* Connection timeout backoff */
101 /* In general this should be low to have quick detection of a system
102  * running on a backup server. (If it's too low, import_select_connection
103  * will increase the timeout anyhow.)
104  */
105 #define INITIAL_CONNECT_TIMEOUT max(CONNECTION_SWITCH_MIN, obd_timeout/20)
106 /* The max delay between connects is SWITCH_MAX + SWITCH_INC + INITIAL */
107 #define RECONNECT_DELAY_MAX (CONNECTION_SWITCH_MAX + CONNECTION_SWITCH_INC + \
108                              INITIAL_CONNECT_TIMEOUT)
109 /* The min time a target should wait for clients to reconnect in recovery */
110 #define OBD_RECOVERY_TIME_MIN   (2*RECONNECT_DELAY_MAX)
111 #define OBD_IR_FACTOR_MIN       1
112 #define OBD_IR_FACTOR_MAX       10
113 #define OBD_IR_FACTOR_DEFAULT   (OBD_IR_FACTOR_MAX/2)
114 /* default timeout for the MGS to become IR_FULL */
115 #define OBD_IR_MGS_TIMEOUT      (4*obd_timeout)
116 /* Unlink should happen within this many seconds. */
117 #define PTLRPC_REQ_LONG_UNLINK  300
118
119 /**
120  * Time interval of shrink, if the client is "idle" more than this interval,
121  * then the ll_grant thread will return the requested grant space to filter
122  */
123 #define GRANT_SHRINK_INTERVAL            1200/*20 minutes*/
124
125 #define OBD_FAIL_MDS                            0x100
126 #define OBD_FAIL_MDS_HANDLE_UNPACK              0x101
127 #define OBD_FAIL_MDS_GETATTR_NET                0x102
128 #define OBD_FAIL_MDS_GETATTR_PACK               0x103
129 #define OBD_FAIL_MDS_READPAGE_NET               0x104
130 #define OBD_FAIL_MDS_READPAGE_PACK              0x105
131 #define OBD_FAIL_MDS_SENDPAGE                   0x106
132 #define OBD_FAIL_MDS_REINT_NET                  0x107
133 #define OBD_FAIL_MDS_REINT_UNPACK               0x108
134 #define OBD_FAIL_MDS_REINT_SETATTR              0x109
135 #define OBD_FAIL_MDS_REINT_SETATTR_WRITE        0x10a
136 #define OBD_FAIL_MDS_REINT_CREATE               0x10b
137 #define OBD_FAIL_MDS_REINT_CREATE_WRITE         0x10c
138 #define OBD_FAIL_MDS_REINT_UNLINK               0x10d
139 #define OBD_FAIL_MDS_REINT_UNLINK_WRITE         0x10e
140 #define OBD_FAIL_MDS_REINT_LINK                 0x10f
141 #define OBD_FAIL_MDS_REINT_LINK_WRITE           0x110
142 #define OBD_FAIL_MDS_REINT_RENAME               0x111
143 #define OBD_FAIL_MDS_REINT_RENAME_WRITE         0x112
144 #define OBD_FAIL_MDS_OPEN_NET                   0x113
145 #define OBD_FAIL_MDS_OPEN_PACK                  0x114
146 #define OBD_FAIL_MDS_CLOSE_NET                  0x115
147 #define OBD_FAIL_MDS_CLOSE_PACK                 0x116
148 #define OBD_FAIL_MDS_CONNECT_NET                0x117
149 #define OBD_FAIL_MDS_CONNECT_PACK               0x118
150 #define OBD_FAIL_MDS_REINT_NET_REP              0x119
151 #define OBD_FAIL_MDS_DISCONNECT_NET             0x11a
152 #define OBD_FAIL_MDS_GET_ROOT_NET               0x11b
153 #define OBD_FAIL_MDS_GET_ROOT_PACK              0x11c
154 #define OBD_FAIL_MDS_STATFS_PACK                0x11d
155 #define OBD_FAIL_MDS_STATFS_SUM_PACK            0x11d
156 #define OBD_FAIL_MDS_STATFS_NET                 0x11e
157 #define OBD_FAIL_MDS_STATFS_SUM_NET             0x11e
158 #define OBD_FAIL_MDS_GETATTR_NAME_NET           0x11f
159 #define OBD_FAIL_MDS_PIN_NET                    0x120
160 #define OBD_FAIL_MDS_UNPIN_NET                  0x121
161 #define OBD_FAIL_MDS_ALL_REPLY_NET              0x122
162 #define OBD_FAIL_MDS_ALL_REQUEST_NET            0x123
163 #define OBD_FAIL_MDS_SYNC_NET                   0x124
164 #define OBD_FAIL_MDS_SYNC_PACK                  0x125
165 /*      OBD_FAIL_MDS_DONE_WRITING_NET    0x126 obsolete since 2.8.0 */
166 /*      OBD_FAIL_MDS_DONE_WRITING_PACK   0x127 obsolete since 2.8.0 */
167 #define OBD_FAIL_MDS_ALLOC_OBDO                 0x128
168 #define OBD_FAIL_MDS_PAUSE_OPEN                 0x129
169 #define OBD_FAIL_MDS_STATFS_LCW_SLEEP           0x12a
170 #define OBD_FAIL_MDS_OPEN_CREATE                0x12b
171 #define OBD_FAIL_MDS_OST_SETATTR                0x12c
172 /*      OBD_FAIL_MDS_QUOTACHECK_NET      0x12d obsolete since 2.4 */
173 #define OBD_FAIL_MDS_QUOTACTL_NET               0x12e
174 #define OBD_FAIL_MDS_CLIENT_ADD                 0x12f
175 #define OBD_FAIL_MDS_GETXATTR_NET               0x130
176 #define OBD_FAIL_MDS_GETXATTR_PACK              0x131
177 #define OBD_FAIL_MDS_SETXATTR_NET               0x132
178 #define OBD_FAIL_MDS_SETXATTR                   0x133
179 #define OBD_FAIL_MDS_SETXATTR_WRITE             0x134
180 #define OBD_FAIL_MDS_FS_SETUP                   0x135
181 #define OBD_FAIL_MDS_RESEND                     0x136
182 #define OBD_FAIL_MDS_LLOG_CREATE_FAILED         0x137
183 #define OBD_FAIL_MDS_LOV_SYNC_RACE              0x138
184 #define OBD_FAIL_MDS_OSC_PRECREATE              0x139
185 #define OBD_FAIL_MDS_LLOG_SYNC_TIMEOUT          0x13a
186 #define OBD_FAIL_MDS_CLOSE_NET_REP              0x13b
187 #define OBD_FAIL_MDS_BLOCK_QUOTA_REQ            0x13c
188 #define OBD_FAIL_MDS_DROP_QUOTA_REQ             0x13d
189 #define OBD_FAIL_MDS_REMOVE_COMMON_EA           0x13e
190 #define OBD_FAIL_MDS_ALLOW_COMMON_EA_SETTING    0x13f
191 #define OBD_FAIL_MDS_FAIL_LOV_LOG_ADD           0x140
192 #define OBD_FAIL_MDS_LOV_PREP_CREATE            0x141
193 #define OBD_FAIL_MDS_REINT_DELAY                0x142
194 #define OBD_FAIL_MDS_READLINK_EPROTO            0x143
195 #define OBD_FAIL_MDS_OPEN_WAIT_CREATE           0x144
196 #define OBD_FAIL_MDS_PDO_LOCK                   0x145
197 #define OBD_FAIL_MDS_PDO_LOCK2                  0x146
198 #define OBD_FAIL_MDS_OSC_CREATE_FAIL            0x147
199 #define OBD_FAIL_MDS_NEGATIVE_POSITIVE          0x148
200 #define OBD_FAIL_MDS_HSM_STATE_GET_NET          0x149
201 #define OBD_FAIL_MDS_HSM_STATE_SET_NET          0x14a
202 #define OBD_FAIL_MDS_HSM_PROGRESS_NET           0x14b
203 #define OBD_FAIL_MDS_HSM_REQUEST_NET            0x14c
204 #define OBD_FAIL_MDS_HSM_CT_REGISTER_NET        0x14d
205 #define OBD_FAIL_MDS_HSM_CT_UNREGISTER_NET      0x14e
206 #define OBD_FAIL_MDS_SWAP_LAYOUTS_NET           0x14f
207 #define OBD_FAIL_MDS_HSM_ACTION_NET             0x150
208 #define OBD_FAIL_MDS_CHANGELOG_INIT             0x151
209 #define OBD_FAIL_MDS_HSM_SWAP_LAYOUTS           0x152
210 #define OBD_FAIL_MDS_RENAME                     0x153
211 #define OBD_FAIL_MDS_RENAME2                    0x154
212 #define OBD_FAIL_MDS_RENAME3                    0x155
213 #define OBD_FAIL_MDS_RENAME4                    0x156
214 #define OBD_FAIL_MDS_LDLM_REPLY_NET             0x157
215 #define OBD_FAIL_MDS_STALE_DIR_LAYOUT           0x158
216 #define OBD_FAIL_MDS_REINT_MULTI_NET            0x159
217 #define OBD_FAIL_MDS_REINT_MULTI_NET_REP        0x15a
218 #define OBD_FAIL_MDS_LLOG_CREATE_FAILED2        0x15b
219 #define OBD_FAIL_MDS_FLD_LOOKUP                 0x15c
220 #define OBD_FAIL_MDS_CHANGELOG_REORDER          0x15d
221 #define OBD_FAIL_MDS_LLOG_UMOUNT_RACE           0x15e
222 #define OBD_FAIL_MDS_CHANGELOG_RACE             0x15f
223 #define OBD_FAIL_MDS_INTENT_DELAY               0x160
224 #define OBD_FAIL_MDS_XATTR_REP                  0x161
225 #define OBD_FAIL_MDS_TRACK_OVERFLOW             0x162
226 #define OBD_FAIL_MDS_LOV_CREATE_RACE            0x163
227 #define OBD_FAIL_MDS_HSM_CDT_DELAY              0x164
228 #define OBD_FAIL_MDS_ORPHAN_DELETE              0x165
229 #define OBD_FAIL_MDS_RMFID_NET                  0x166
230 #define OBD_FAIL_MDS_CREATE_RACE                0x167
231 #define OBD_FAIL_MDS_STATFS_SPOOF               0x168
232 #define OBD_FAIL_MDS_REINT_OPEN                 0x169
233 #define OBD_FAIL_MDS_REINT_OPEN2                0x16a
234 #define OBD_FAIL_MDS_COMMITRW_DELAY             0x16b
235 #define OBD_FAIL_MDS_CHANGELOG_DEL              0x16c
236 #define OBD_FAIL_MDS_CHANGELOG_IDX_PUMP         0x16d
237 #define OBD_FAIL_MDS_DELAY_DELORPHAN            0x16e
238 #define OBD_FAIL_MDS_DIR_PAGE_WALK              0x16f
239 /* continue at 0x2400, see below */
240
241 /* layout lock */
242 #define OBD_FAIL_MDS_NO_LL_GETATTR       0x170
243 #define OBD_FAIL_MDS_NO_LL_OPEN          0x171
244 #define OBD_FAIL_MDS_LL_BLOCK            0x172
245 #define OBD_FAIL_MDS_LOD_CREATE_PAUSE    0x173
246 #define OBD_FAIL_MDS_CONNECT_VS_EVICT    0x174
247 #define OBD_FAIL_MDS_DELAY_OPEN          0x175
248 #define OBD_FAIL_MDS_LL_PCCRO            0x176
249
250 /* CMD */
251 #define OBD_FAIL_MDS_IS_SUBDIR_NET              0x180
252 #define OBD_FAIL_MDS_IS_SUBDIR_PACK             0x181
253 #define OBD_FAIL_MDS_SET_INFO_NET               0x182
254 #define OBD_FAIL_MDS_WRITEPAGE_NET              0x183
255 #define OBD_FAIL_MDS_WRITEPAGE_PACK             0x184
256 #define OBD_FAIL_MDS_RECOVERY_ACCEPTS_GAPS      0x185
257 #define OBD_FAIL_MDS_GET_INFO_NET               0x186
258 #define OBD_FAIL_MDS_DQACQ_NET                  0x187
259 #define OBD_FAIL_MDS_STRIPE_CREATE              0x188
260 #define OBD_FAIL_MDS_STRIPE_FID                 0x189
261 #define OBD_FAIL_MDS_LINK_RENAME_RACE           0x18a
262 #define OBD_FAIL_MDS_HSM_RESTORE_RACE           0x18b
263 #define OBD_FAIL_MDS_CHANGELOG_ENOSPC           0x18c
264 #define OBD_FAIL_MDS_BATCH_NET                  0x18d
265 #define OBD_FAIL_MDS_HSM_DATA_VERSION_NET       0x18e
266 #define OBD_FAIL_MDS_CHANGELOG_FAIL_WRITE       0x18f
267
268 /* OI scrub */
269 #define OBD_FAIL_OSD_SCRUB_DELAY                0x190
270 #define OBD_FAIL_OSD_SCRUB_CRASH                0x191
271 #define OBD_FAIL_OSD_SCRUB_FATAL                0x192
272 #define OBD_FAIL_OSD_FID_MAPPING                0x193
273 #define OBD_FAIL_OSD_LMA_INCOMPAT               0x194
274 #define OBD_FAIL_OSD_COMPAT_INVALID_ENTRY       0x195
275 #define OBD_FAIL_OSD_COMPAT_NO_ENTRY            0x196
276 #define OBD_FAIL_OSD_OST_EA_FID_SET             0x197
277 #define OBD_FAIL_OSD_NO_OI_ENTRY                0x198
278 #define OBD_FAIL_OSD_INDEX_CRASH                0x199
279 #define OBD_FAIL_OSD_TXN_START                  0x19a
280 #define OBD_FAIL_OSD_DUPLICATE_MAP              0x19b
281 #define OBD_FAIL_OSD_REF_DEL                    0x19c
282 #define OBD_FAIL_OSD_OI_ENOSPC                  0x19d
283 #define OBD_FAIL_OSD_DOTDOT_ENOSPC              0x19e
284 #define OBD_FAIL_OSD_SCRUB_STALE                0x19f
285 #define OBD_FAIL_OSD_FID_REUSE                  0x1a0
286
287 #define OBD_FAIL_OFD_SET_OID                            0x1e0
288 #define OBD_FAIL_OFD_COMMITRW_DELAY                     0x1e1
289 #define OBD_FAIL_OFD_IGET_FAIL_TO_START                 0x1e2
290 #define OBD_FAIL_OFD_IGET_FAIL                          0x1e3
291
292 #define OBD_FAIL_OST                            0x200
293 #define OBD_FAIL_OST_CONNECT_NET                0x201
294 #define OBD_FAIL_OST_DISCONNECT_NET             0x202
295 #define OBD_FAIL_OST_GET_INFO_NET               0x203
296 #define OBD_FAIL_OST_CREATE_NET                 0x204
297 #define OBD_FAIL_OST_DESTROY_NET                0x205
298 #define OBD_FAIL_OST_GETATTR_NET                0x206
299 #define OBD_FAIL_OST_SETATTR_NET                0x207
300 #define OBD_FAIL_OST_OPEN_NET                   0x208
301 #define OBD_FAIL_OST_CLOSE_NET                  0x209
302 #define OBD_FAIL_OST_BRW_NET                    0x20a
303 #define OBD_FAIL_OST_PUNCH_NET                  0x20b
304 #define OBD_FAIL_OST_STATFS_NET                 0x20c
305 #define OBD_FAIL_OST_HANDLE_UNPACK              0x20d
306 #define OBD_FAIL_OST_BRW_WRITE_BULK             0x20e
307 #define OBD_FAIL_OST_BRW_READ_BULK              0x20f
308 #define OBD_FAIL_OST_SYNC_NET                   0x210
309 #define OBD_FAIL_OST_ALL_REPLY_NET              0x211
310 #define OBD_FAIL_OST_ALL_REQUEST_NET            0x212
311 #define OBD_FAIL_OST_LDLM_REPLY_NET             0x213
312 #define OBD_FAIL_OST_BRW_PAUSE_BULK             0x214
313 #define OBD_FAIL_OST_ENOSPC                     0x215
314 #define OBD_FAIL_OST_EROFS                      0x216
315 #define OBD_FAIL_SRV_ENOENT                     0x217
316 /*      OBD_FAIL_OST_QUOTACHECK_NET             0x218 obsolete since 2.4 */
317 #define OBD_FAIL_OST_QUOTACTL_NET               0x219
318 #define OBD_FAIL_OST_CHECKSUM_RECEIVE           0x21a
319 #define OBD_FAIL_OST_CHECKSUM_SEND              0x21b
320 #define OBD_FAIL_OST_BRW_SIZE                   0x21c
321 #define OBD_FAIL_OST_DROP_REQ                   0x21d
322 #define OBD_FAIL_OST_SETATTR_CREDITS            0x21e
323 #define OBD_FAIL_OST_HOLD_WRITE_RPC             0x21f
324 #define OBD_FAIL_OST_BRW_WRITE_BULK2            0x220
325 #define OBD_FAIL_OST_LLOG_RECOVERY_TIMEOUT      0x221
326 #define OBD_FAIL_OST_CANCEL_COOKIE_TIMEOUT      0x222
327 #define OBD_FAIL_OST_PAUSE_CREATE               0x223
328 #define OBD_FAIL_OST_BRW_PAUSE_PACK             0x224
329 #define OBD_FAIL_OST_CONNECT_NET2               0x225
330 #define OBD_FAIL_OST_NOMEM                      0x226
331 #define OBD_FAIL_OST_BRW_PAUSE_BULK2            0x227
332 #define OBD_FAIL_OST_MAPBLK_ENOSPC              0x228
333 #define OBD_FAIL_OST_ENOINO                     0x229
334 #define OBD_FAIL_OST_DQACQ_NET                  0x230
335 #define OBD_FAIL_OST_STATFS_EINPROGRESS         0x231
336 #define OBD_FAIL_OST_SET_INFO_NET               0x232
337 #define OBD_FAIL_OST_NODESTROY                  0x233
338 /*      OBD_FAIL_OST_READ_SIZE                  0x234 obsolete since 2.14 */
339 #define OBD_FAIL_OST_LADVISE_NET                0x235
340 #define OBD_FAIL_OST_PAUSE_PUNCH                0x236
341 #define OBD_FAIL_OST_LADVISE_PAUSE              0x237
342 #define OBD_FAIL_OST_FAKE_RW                    0x238
343 #define OBD_FAIL_OST_LIST_ASSERT                0x239
344 #define OBD_FAIL_OST_GL_WORK_ALLOC              0x240
345 #define OBD_FAIL_OST_SKIP_LV_CHECK              0x241
346 #define OBD_FAIL_OST_STATFS_DELAY               0x242
347 #define OBD_FAIL_OST_INTEGRITY_FAULT            0x243
348 #define OBD_FAIL_OST_INTEGRITY_CMP              0x244
349 #define OBD_FAIL_OST_DISCONNECT_DELAY           0x245
350 #define OBD_FAIL_OST_PREPARE_DELAY              0x247
351 #define OBD_FAIL_OST_2BIG_NIOBUF                0x248
352 #define OBD_FAIL_OST_FALLOCATE_NET              0x249
353 #define OBD_FAIL_OST_SEEK_NET                   0x24a
354 #define OBD_FAIL_OST_WR_ATTR_DELAY              0x250
355 #define OBD_FAIL_OST_RESTART_IO                 0x251
356 #define OBD_FAIL_OST_OPCODE              0x253
357 #define OBD_FAIL_OST_DELORPHAN_DELAY     0x254
358 #define OBD_FAIL_OST_ENOSPC_VALID        0x255
359 #define OBD_FAIL_OST_GRANT_PREPARE       0x256
360
361 #define OBD_FAIL_LDLM                    0x300
362 #define OBD_FAIL_LDLM_NAMESPACE_NEW      0x301
363 #define OBD_FAIL_LDLM_ENQUEUE_NET        0x302
364 #define OBD_FAIL_LDLM_CONVERT_NET        0x303
365 #define OBD_FAIL_LDLM_CANCEL_NET         0x304
366 #define OBD_FAIL_LDLM_BL_CALLBACK_NET    0x305
367 #define OBD_FAIL_LDLM_CP_CALLBACK_NET           0x306
368 #define OBD_FAIL_LDLM_GL_CALLBACK_NET           0x307
369 #define OBD_FAIL_LDLM_ENQUEUE_EXTENT_ERR        0x308
370 #define OBD_FAIL_LDLM_ENQUEUE_INTENT_ERR        0x309
371 #define OBD_FAIL_LDLM_CREATE_RESOURCE           0x30a
372 #define OBD_FAIL_LDLM_ENQUEUE_BLOCKED           0x30b
373 #define OBD_FAIL_LDLM_REPLY                     0x30c
374 #define OBD_FAIL_LDLM_RECOV_CLIENTS             0x30d
375 #define OBD_FAIL_LDLM_ENQUEUE_OLD_EXPORT        0x30e
376 #define OBD_FAIL_LDLM_GLIMPSE                   0x30f
377 #define OBD_FAIL_LDLM_CANCEL_RACE               0x310
378 #define OBD_FAIL_LDLM_CANCEL_EVICT_RACE         0x311
379 #define OBD_FAIL_LDLM_PAUSE_CANCEL              0x312
380 #define OBD_FAIL_LDLM_CLOSE_THREAD              0x313
381 #define OBD_FAIL_LDLM_CANCEL_BL_CB_RACE         0x314
382 #define OBD_FAIL_LDLM_CP_CB_WAIT                0x315
383 #define OBD_FAIL_LDLM_OST_FAIL_RACE             0x316
384 #define OBD_FAIL_LDLM_INTR_CP_AST               0x317
385 #define OBD_FAIL_LDLM_CP_BL_RACE                0x318
386 #define OBD_FAIL_LDLM_NEW_LOCK                  0x319
387 #define OBD_FAIL_LDLM_AGL_DELAY                 0x31a
388 #define OBD_FAIL_LDLM_AGL_NOLOCK                0x31b
389 #define OBD_FAIL_LDLM_OST_LVB                   0x31c
390 #define OBD_FAIL_LDLM_ENQUEUE_HANG              0x31d
391 #define OBD_FAIL_LDLM_BL_EVICT                  0x31e
392 #define OBD_FAIL_LDLM_PAUSE_CANCEL2             0x31f
393 #define OBD_FAIL_LDLM_CP_CB_WAIT2               0x320
394 #define OBD_FAIL_LDLM_CP_CB_WAIT3               0x321
395 #define OBD_FAIL_LDLM_CP_CB_WAIT4               0x322
396 #define OBD_FAIL_LDLM_CP_CB_WAIT5               0x323
397 #define OBD_FAIL_LDLM_SRV_BL_AST                0x324
398 #define OBD_FAIL_LDLM_SRV_CP_AST                0x325
399 #define OBD_FAIL_LDLM_SRV_GL_AST                0x326
400 #define OBD_FAIL_LDLM_WATERMARK_LOW             0x327
401 #define OBD_FAIL_LDLM_WATERMARK_HIGH            0x328
402 #define OBD_FAIL_LDLM_PAUSE_CANCEL_LOCAL        0x329
403
404 #define OBD_FAIL_LDLM_GRANT_CHECK        0x32a
405 #define OBD_FAIL_LDLM_PROLONG_PAUSE      0x32b
406 #define OBD_FAIL_LDLM_LOCAL_CANCEL_PAUSE 0x32c
407 #define OBD_FAIL_LDLM_LOCK_REPLAY        0x32d
408 #define OBD_FAIL_LDLM_REPLAY_PAUSE       0x32e
409 #define OBD_FAIL_LDLM_LOCK_STACK         0x32f
410
411 /* LOCKLESS IO */
412 #define OBD_FAIL_LDLM_SET_CONTENTION            0x385
413
414 #define OBD_FAIL_OSC                            0x400
415 #define OBD_FAIL_OSC_BRW_READ_BULK              0x401
416 #define OBD_FAIL_OSC_BRW_WRITE_BULK             0x402
417 #define OBD_FAIL_OSC_LOCK_BL_AST                0x403
418 #define OBD_FAIL_OSC_LOCK_CP_AST                0x404
419 #define OBD_FAIL_OSC_MATCH                      0x405
420 #define OBD_FAIL_OSC_BRW_PREP_REQ               0x406
421 #define OBD_FAIL_OSC_SHUTDOWN                   0x407
422 #define OBD_FAIL_OSC_CHECKSUM_RECEIVE           0x408
423 #define OBD_FAIL_OSC_CHECKSUM_SEND              0x409
424 #define OBD_FAIL_OSC_BRW_PREP_REQ2              0x40a
425 /* #define OBD_FAIL_OSC_CONNECT_CKSUM           0x40b Obsolete since 2.9 */
426 #define OBD_FAIL_OSC_CKSUM_ADLER_ONLY           0x40c
427 /*#define OBD_FAIL_OSC_DIO_PAUSE                0x40d removed in 2.0 */
428 #define OBD_FAIL_OSC_OBJECT_CONTENTION          0x40e
429 #define OBD_FAIL_OSC_CP_CANCEL_RACE             0x40f
430 #define OBD_FAIL_OSC_CP_ENQ_RACE                0x410
431 #define OBD_FAIL_OSC_NO_GRANT                   0x411
432 #define OBD_FAIL_OSC_DELAY_SETTIME              0x412
433 #define OBD_FAIL_OSC_CONNECT_GRANT_PARAM        0x413
434 #define OBD_FAIL_OSC_DELAY_IO                   0x414
435 #define OBD_FAIL_OSC_NO_SIZE_DATA               0x415
436 #define OBD_FAIL_OSC_DELAY_CANCEL               0x416
437 #define OBD_FAIL_OSC_SLOW_PAGE_EVICT            0x417
438 #define OBD_FAIL_OSC_FIEMAP                     0x418
439 #define OBD_FAIL_OSC_MARK_COMPRESSED            0x419
440
441 #define OBD_FAIL_PTLRPC                  0x500
442 #define OBD_FAIL_PTLRPC_ACK              0x501
443 #define OBD_FAIL_PTLRPC_RQBD             0x502
444 #define OBD_FAIL_PTLRPC_BULK_GET_NET     0x503
445 #define OBD_FAIL_PTLRPC_BULK_PUT_NET     0x504
446 #define OBD_FAIL_PTLRPC_DROP_RPC         0x505
447 #define OBD_FAIL_PTLRPC_DELAY_SEND       0x506
448 #define OBD_FAIL_PTLRPC_DELAY_RECOV      0x507
449 #define OBD_FAIL_PTLRPC_CLIENT_BULK_CB   0x508
450 #define OBD_FAIL_PTLRPC_PAUSE_REQ        0x50a
451 #define OBD_FAIL_PTLRPC_PAUSE_REP        0x50c
452 #define OBD_FAIL_PTLRPC_IMP_DEACTIVE     0x50d
453 #define OBD_FAIL_PTLRPC_DUMP_LOG         0x50e
454 #define OBD_FAIL_PTLRPC_LONG_REPL_UNLINK 0x50f
455 #define OBD_FAIL_PTLRPC_LONG_BULK_UNLINK 0x510
456 #define OBD_FAIL_PTLRPC_HPREQ_TIMEOUT    0x511
457 #define OBD_FAIL_PTLRPC_HPREQ_NOTIMEOUT  0x512
458 #define OBD_FAIL_PTLRPC_DROP_REQ_OPC     0x513
459 #define OBD_FAIL_PTLRPC_FINISH_REPLAY    0x514
460 #define OBD_FAIL_PTLRPC_CLIENT_BULK_CB2  0x515
461 #define OBD_FAIL_PTLRPC_DELAY_IMP_FULL   0x516
462 #define OBD_FAIL_PTLRPC_CANCEL_RESEND    0x517
463 #define OBD_FAIL_PTLRPC_DROP_BULK        0x51a
464 #define OBD_FAIL_PTLRPC_LONG_REQ_UNLINK  0x51b
465 #define OBD_FAIL_PTLRPC_LONG_BOTH_UNLINK 0x51c
466 #define OBD_FAIL_PTLRPC_DROP_MGS         0x51d
467 #define OBD_FAIL_PTLRPC_CLIENT_BULK_CB3  0x520
468 #define OBD_FAIL_PTLRPC_BULK_ATTACH      0x521
469 #define OBD_FAIL_PTLRPC_BULK_REPLY_ATTACH      0x522
470 #define OBD_FAIL_PTLRPC_RESEND_RACE      0x525
471 #define OBD_FAIL_PTLRPC_ROUND_XID        0x530
472 #define OBD_FAIL_PTLRPC_CONNECT_RACE     0x531
473 #define OBD_FAIL_PTLRPC_IDLE_RACE        0x533
474 #define OBD_FAIL_PTLRPC_ENQ_RESEND       0x534
475 #define OBD_FAIL_PTLRPC_DELAY_SEND_FAIL  0x535
476 #define OBD_FAIL_PTLRPC_REPLAY_PAUSE     0x536
477
478 #define OBD_FAIL_OBD_PING_NET            0x600
479 /*      OBD_FAIL_OBD_LOG_CANCEL_NET      0x601 obsolete since 1.5 */
480 #define OBD_FAIL_OBD_LOGD_NET            0x602
481 /*      OBD_FAIL_OBD_QC_CALLBACK_NET     0x603 obsolete since 2.4 */
482 #define OBD_FAIL_OBD_DQACQ               0x604
483 #define OBD_FAIL_OBD_LLOG_SETUP          0x605
484 /*      OBD_FAIL_OBD_LOG_CANCEL_REP      0x606 obsolete since 1.5 */
485 #define OBD_FAIL_OBD_IDX_READ_NET        0x607
486 #define OBD_FAIL_OBD_IDX_READ_BREAK      0x608
487 #define OBD_FAIL_OBD_NO_LRU              0x609
488 #define OBD_FAIL_OBDCLASS_MODULE_LOAD    0x60a
489 #define OBD_FAIL_OBD_ZERO_NLINK_RACE     0x60b
490 #define OBD_FAIL_OBD_STOP_MDS_RACE       0x60c
491 #define OBD_FAIL_OBD_SETUP               0x60d
492 #define OBD_FAIL_OBD_CLEANUP             0x60e
493 #define OBD_FAIL_OBD_PAUSE_EVICTOR       0x60f
494
495 #define OBD_FAIL_TGT_REPLY_NET           0x700
496 #define OBD_FAIL_TGT_CONN_RACE           0x701
497 #define OBD_FAIL_TGT_FORCE_RECONNECT     0x702
498 #define OBD_FAIL_TGT_DELAY_CONNECT       0x703
499 #define OBD_FAIL_TGT_DELAY_RECONNECT     0x704
500 #define OBD_FAIL_TGT_DELAY_PRECREATE     0x705
501 #define OBD_FAIL_TGT_TOOMANY_THREADS     0x706
502 #define OBD_FAIL_TGT_REPLAY_DROP         0x707
503 #define OBD_FAIL_TGT_FAKE_EXP            0x708
504 #define OBD_FAIL_TGT_REPLAY_DELAY        0x709
505 /* #define OBD_FAIL_TGT_LAST_REPLAY         0x710 (obsoleted) */
506 #define OBD_FAIL_TGT_CLIENT_ADD          0x711
507 #define OBD_FAIL_TGT_RCVG_FLAG           0x712
508 #define OBD_FAIL_TGT_DELAY_CONDITIONAL   0x713
509 #define OBD_FAIL_TGT_REPLAY_DELAY2       0x714
510 #define OBD_FAIL_TGT_REPLAY_RECONNECT    0x715
511 #define OBD_FAIL_TGT_MOUNT_RACE          0x716
512 #define OBD_FAIL_TGT_REPLAY_TIMEOUT      0x717
513 #define OBD_FAIL_TGT_CLIENT_DEL          0x718
514 #define OBD_FAIL_TGT_SLUGGISH_NET        0x719
515 #define OBD_FAIL_TGT_RCVD_EIO            0x720
516 #define OBD_FAIL_TGT_RECOVERY_REQ_RACE   0x721
517 #define OBD_FAIL_TGT_REPLY_DATA_RACE     0x722
518 #define OBD_FAIL_TGT_RECOVERY_CONNECT    0x724
519 #define OBD_FAIL_TGT_NO_GRANT            0x725
520 #define OBD_FAIL_TGT_TXN_NO_CANCEL       0x726
521
522 #define OBD_FAIL_MDC_REVALIDATE_PAUSE    0x800
523 #define OBD_FAIL_MDC_ENQUEUE_PAUSE       0x801
524 #define OBD_FAIL_MDC_OLD_EXT_FLAGS       0x802
525 #define OBD_FAIL_MDC_GETATTR_ENQUEUE     0x803
526 #define OBD_FAIL_MDC_RPCS_SEM            0x804 /* deprecated */
527 #define OBD_FAIL_MDC_LIGHTWEIGHT         0x805
528 #define OBD_FAIL_MDC_CLOSE               0x806
529 #define OBD_FAIL_MDC_MERGE               0x807
530 #define OBD_FAIL_MDC_GLIMPSE_DDOS        0x808
531
532 #define OBD_FAIL_MGS                     0x900
533 #define OBD_FAIL_MGS_ALL_REQUEST_NET     0x901
534 #define OBD_FAIL_MGS_ALL_REPLY_NET       0x902
535 #define OBD_FAIL_MGC_PAUSE_PROCESS_LOG   0x903
536 #define OBD_FAIL_MGS_PAUSE_REQ           0x904
537 #define OBD_FAIL_MGS_PAUSE_TARGET_REG    0x905
538 #define OBD_FAIL_MGS_CONNECT_NET         0x906
539 #define OBD_FAIL_MGS_DISCONNECT_NET      0x907
540 #define OBD_FAIL_MGS_SET_INFO_NET        0x908
541 #define OBD_FAIL_MGS_EXCEPTION_NET       0x909
542 #define OBD_FAIL_MGS_TARGET_REG_NET      0x90a
543 #define OBD_FAIL_MGS_TARGET_DEL_NET      0x90b
544 #define OBD_FAIL_MGS_CONFIG_READ_NET     0x90c
545 #define OBD_FAIL_MGS_LDLM_REPLY_NET      0x90d
546 #define OBD_FAIL_MGS_WRITE_TARGET_DELAY  0x90e
547
548 #define OBD_FAIL_QUOTA_DQACQ_NET         0xA01
549 #define OBD_FAIL_QUOTA_EDQUOT            0xA02
550 #define OBD_FAIL_QUOTA_DELAY_REINT       0xA03
551 #define OBD_FAIL_QUOTA_RECOVERABLE_ERR   0xA04
552 #define OBD_FAIL_QUOTA_INIT              0xA05
553 #define OBD_FAIL_QUOTA_PREACQ            0xA06
554 #define OBD_FAIL_QUOTA_RECALC            0xA07
555 #define OBD_FAIL_QUOTA_GRANT             0xA08
556 #define OBD_FAIL_QUOTA_NOSYNC            0xA09
557
558 #define OBD_FAIL_LPROC_REMOVE            0xB00
559
560 #define OBD_FAIL_SEQ                     0x1000
561 #define OBD_FAIL_SEQ_QUERY_NET           0x1001
562 #define OBD_FAIL_SEQ_EXHAUST             0x1002
563
564 #define OBD_FAIL_FLD                     0x1100
565 #define OBD_FAIL_FLD_QUERY_NET           0x1101
566 #define OBD_FAIL_FLD_READ_NET            0x1102
567 #define OBD_FAIL_FLD_QUERY_REQ           0x1103
568
569 #define OBD_FAIL_SEC_CTX                 0x1200
570 #define OBD_FAIL_SEC_CTX_INIT_NET        0x1201
571 #define OBD_FAIL_SEC_CTX_INIT_CONT_NET   0x1202
572 #define OBD_FAIL_SEC_CTX_FINI_NET        0x1203
573 #define OBD_FAIL_SEC_CTX_HDL_PAUSE       0x1204
574
575 #define OBD_FAIL_LLOG                               0x1300
576 /* was  OBD_FAIL_LLOG_ORIGIN_CONNECT_NET            0x1301 until 2.4 */
577 #define OBD_FAIL_LLOG_ORIGIN_HANDLE_CREATE_NET      0x1302
578 /* was  OBD_FAIL_LLOG_ORIGIN_HANDLE_DESTROY_NET     0x1303 until 2.11 */
579 #define OBD_FAIL_LLOG_ORIGIN_HANDLE_READ_HEADER_NET 0x1304
580 #define OBD_FAIL_LLOG_ORIGIN_HANDLE_NEXT_BLOCK_NET  0x1305
581 #define OBD_FAIL_LLOG_ORIGIN_HANDLE_PREV_BLOCK_NET  0x1306
582 /* was  OBD_FAIL_LLOG_ORIGIN_HANDLE_WRITE_REC_NET   0x1307 until 2.1 */
583 /* was  OBD_FAIL_LLOG_ORIGIN_HANDLE_CLOSE_NET       0x1308 until 1.8 */
584 /* was  OBD_FAIL_LLOG_CATINFO_NET                   0x1309 until 2.3 */
585 #define OBD_FAIL_MDS_SYNC_CAPA_SL                   0x1310
586 #define OBD_FAIL_SEQ_ALLOC                          0x1311
587 #define OBD_FAIL_CAT_RECORDS                        0x1312
588 #define OBD_FAIL_CAT_FREE_RECORDS                   0x1313
589 #define OBD_FAIL_TIME_IN_CHLOG_USER                 0x1314
590 #define CFS_FAIL_CHLOG_USER_REG_UNREG_RACE          0x1315
591 #define OBD_FAIL_FORCE_GC_THREAD                    0x1316
592 #define OBD_FAIL_LLOG_PROCESS_TIMEOUT               0x1317
593 #define OBD_FAIL_LLOG_PURGE_DELAY                   0x1318
594 #define OBD_FAIL_PLAIN_RECORDS                      0x1319
595 #define OBD_FAIL_CATALOG_FULL_CHECK                 0x131a
596 #define OBD_FAIL_CATLIST                            0x131b
597 #define OBD_FAIL_LLOG_PAUSE_AFTER_PAD               0x131c
598 #define OBD_FAIL_LLOG_ADD_GAP                       0x131d
599 #define OBD_FAIL_LLOG_BACKUP_ENOSPC                 0x131e
600
601 #define OBD_FAIL_LLITE                              0x1400
602 #define OBD_FAIL_LLITE_FAULT_TRUNC_RACE             0x1401
603 #define OBD_FAIL_LOCK_STATE_WAIT_INTR               0x1402
604 #define OBD_FAIL_LOV_INIT                           0x1403
605 #define OBD_FAIL_GLIMPSE_DELAY                      0x1404
606 #define OBD_FAIL_LLITE_XATTR_ENOMEM                 0x1405
607 #define OBD_FAIL_MAKE_LOVEA_HOLE                    0x1406
608 #define OBD_FAIL_LLITE_LOST_LAYOUT                  0x1407
609 #define OBD_FAIL_LLITE_NO_CHECK_DEAD                0x1408
610 #define OBD_FAIL_GETATTR_DELAY                      0x1409
611 #define OBD_FAIL_LLITE_CREATE_FILE_PAUSE            0x1409
612 #define OBD_FAIL_LLITE_NEWNODE_PAUSE                0x140a
613 #define OBD_FAIL_LLITE_SETDIRSTRIPE_PAUSE           0x140b
614 #define OBD_FAIL_LLITE_CREATE_NODE_PAUSE            0x140c
615 #define OBD_FAIL_LLITE_IMUTEX_SEC                   0x140e
616 #define OBD_FAIL_LLITE_IMUTEX_NOSEC                 0x140f
617 #define OBD_FAIL_LLITE_OPEN_BY_NAME                 0x1410
618 #define OBD_FAIL_LLITE_PCC_FAKE_ERROR               0x1411
619 #define OBD_FAIL_LLITE_PCC_DETACH_MKWRITE           0x1412
620 #define OBD_FAIL_LLITE_PCC_MKWRITE_PAUSE            0x1413
621 #define OBD_FAIL_LLITE_PCC_ATTACH_PAUSE             0x1414
622 #define OBD_FAIL_LLITE_SHORT_COMMIT                 0x1415
623 #define OBD_FAIL_LLITE_CREATE_FILE_PAUSE2           0x1416
624 #define OBD_FAIL_LLITE_RACE_MOUNT                   0x1417
625 #define OBD_FAIL_LLITE_PAGE_ALLOC                   0x1418
626 #define OBD_FAIL_LLITE_OPEN_DELAY                   0x1419
627 #define OBD_FAIL_LLITE_XATTR_PAUSE                  0x1420
628 #define OBD_FAIL_LLITE_PAGE_INVALIDATE_PAUSE        0x1421
629 #define OBD_FAIL_LLITE_READPAGE_PAUSE               0x1422
630 #define OBD_FAIL_LLITE_PANIC_ON_ESTALE              0x1423
631 #define OBD_FAIL_LLITE_READPAGE_PAUSE2              0x1424
632 #define OBD_FAIL_LOV_MIRROR_INIT                    0x1425
633 #define OBD_FAIL_LOV_COMP_MAGIC                     0x1426
634 #define OBD_FAIL_LOV_COMP_PATTERN                   0x1427
635 #define OBD_FAIL_LOV_INVALID_OSTIDX                 0x1428
636 #define OBD_FAIL_LLITE_FORCE_BIO_AS_DIO             0x1429
637 #define OBD_FAIL_LLITE_DELAY_TRUNCATE               0x1430
638 #define OBD_FAIL_LLITE_READ_PAUSE                   0x1431
639 #define OBD_FAIL_LLITE_FAULT_PAUSE                  0x1432
640 #define OBD_FAIL_LLITE_STATAHEAD_PAUSE              0x1433
641 #define OBD_FAIL_LLITE_STAT_RACE1                   0x1434
642 #define OBD_FAIL_LLITE_STAT_RACE2                   0x1435
643
644 #define OBD_FAIL_FID_INDIR      0x1501
645 #define OBD_FAIL_FID_INLMA      0x1502
646 #define OBD_FAIL_FID_IGIF       0x1504
647 #define OBD_FAIL_FID_LOOKUP     0x1505
648 #define OBD_FAIL_FID_NOLMA      0x1506
649
650 /* LFSCK */
651 #define OBD_FAIL_LFSCK_DELAY1           0x1600
652 #define OBD_FAIL_LFSCK_DELAY2           0x1601
653 #define OBD_FAIL_LFSCK_DELAY3           0x1602
654 #define OBD_FAIL_LFSCK_LINKEA_CRASH     0x1603
655 #define OBD_FAIL_LFSCK_LINKEA_MORE      0x1604
656 #define OBD_FAIL_LFSCK_LINKEA_MORE2     0x1605
657 #define OBD_FAIL_LFSCK_FATAL1           0x1608
658 #define OBD_FAIL_LFSCK_FATAL2           0x1609
659 #define OBD_FAIL_LFSCK_CRASH            0x160a
660 #define OBD_FAIL_LFSCK_NO_AUTO          0x160b
661 #define OBD_FAIL_LFSCK_NO_DOUBLESCAN    0x160c
662 #define OBD_FAIL_LFSCK_SKIP_LASTID      0x160d
663 #define OBD_FAIL_LFSCK_DELAY4           0x160e
664 #define OBD_FAIL_LFSCK_BAD_LMMOI        0x160f
665 #define OBD_FAIL_LFSCK_DANGLING         0x1610
666 #define OBD_FAIL_LFSCK_UNMATCHED_PAIR1  0x1611
667 #define OBD_FAIL_LFSCK_UNMATCHED_PAIR2  0x1612
668 #define OBD_FAIL_LFSCK_BAD_OWNER        0x1613
669 #define OBD_FAIL_LFSCK_MULTIPLE_REF     0x1614
670 #define OBD_FAIL_LFSCK_LOST_STRIPE      0x1615
671 #define OBD_FAIL_LFSCK_LOST_MDTOBJ      0x1616
672 #define OBD_FAIL_LFSCK_NOPFID           0x1617
673 #define OBD_FAIL_LFSCK_CHANGE_STRIPE    0x1618
674 #define OBD_FAIL_LFSCK_INVALID_PFID     0x1619
675 #define OBD_FAIL_LFSCK_LOST_SPEOBJ      0x161a
676 #define OBD_FAIL_LFSCK_DELAY5           0x161b
677 #define OBD_FAIL_LFSCK_BAD_NETWORK      0x161c
678 #define OBD_FAIL_LFSCK_NO_LINKEA        0x161d
679 #define OBD_FAIL_LFSCK_BAD_PARENT       0x161e
680 #define OBD_FAIL_LFSCK_DANGLING2        0x1620
681 #define OBD_FAIL_LFSCK_DANGLING3        0x1621
682 #define OBD_FAIL_LFSCK_MUL_REF          0x1622
683 #define OBD_FAIL_LFSCK_BAD_TYPE         0x1623
684 #define OBD_FAIL_LFSCK_NO_NAMEENTRY     0x1624
685 #define OBD_FAIL_LFSCK_LESS_NLINK       0x1626
686 #define OBD_FAIL_LFSCK_BAD_NAME_HASH    0x1628
687 #define OBD_FAIL_LFSCK_LOST_MASTER_LMV  0x1629
688 #define OBD_FAIL_LFSCK_LOST_SLAVE_LMV   0x162a
689 #define OBD_FAIL_LFSCK_BAD_SLAVE_LMV    0x162b
690 #define OBD_FAIL_LFSCK_BAD_SLAVE_NAME   0x162c
691 #define OBD_FAIL_LFSCK_ENGINE_DELAY     0x162d
692 #define OBD_FAIL_LFSCK_LOST_MDTOBJ2     0x162e
693 #define OBD_FAIL_LFSCK_BAD_PFL_RANGE    0x162f
694 #define OBD_FAIL_LFSCK_NO_AGENTOBJ      0x1630
695 #define OBD_FAIL_LFSCK_NO_AGENTENT      0x1631
696 #define OBD_FAIL_LFSCK_NO_ENCFLAG       0x1632
697
698 #define OBD_FAIL_LFSCK_NOTIFY_NET       0x16f0
699 #define OBD_FAIL_LFSCK_QUERY_NET        0x16f1
700
701 /* UPDATE */
702 #define OBD_FAIL_OUT_UPDATE_NET         0x1700
703 #define OBD_FAIL_OUT_UPDATE_NET_REP     0x1701
704 #define OBD_FAIL_SPLIT_UPDATE_REC       0x1702
705 #define OBD_FAIL_LARGE_STRIPE           0x1703
706 #define OBD_FAIL_OUT_ENOSPC             0x1704
707 #define OBD_FAIL_INVALIDATE_UPDATE      0x1705
708 #define OBD_FAIL_OUT_UPDATE_DROP        0x1707
709 #define OBD_FAIL_OUT_OBJECT_MISS        0x1708
710 #define OBD_FAIL_OUT_EIO                0x1709
711 #define OBD_FAIL_BUT_UPDATE_NET_REP     0x170a
712 #define OBD_FAIL_OUT_DROP_DESTROY       0x170b
713 #define OBD_FAIL_OUT_DROP_PROJID_SET    0x170c
714
715 /* MIGRATE */
716 #define OBD_FAIL_MIGRATE_ENTRIES                0x1801
717 #define OBD_FAIL_MIGRATE_BAD_HASH               0x1802
718
719 /* LMV */
720 #define OBD_FAIL_LMV_UNKNOWN_STRIPE             0x1901
721
722 /* FLR */
723 #define OBD_FAIL_FLR_LV_DELAY                   0x1A01
724 #define OBD_FAIL_FLR_LV_INC                     0x1A02 /* unused since 2.15 */
725 #define OBD_FAIL_FLR_RANDOM_PICK_MIRROR         0x1A03
726
727 /* DT */
728 #define OBD_FAIL_DT_DECLARE_ATTR_GET            0x2000
729 #define OBD_FAIL_DT_ATTR_GET                    0x2001
730 #define OBD_FAIL_DT_DECLARE_ATTR_SET            0x2002
731 #define OBD_FAIL_DT_ATTR_SET                    0x2003
732 #define OBD_FAIL_DT_DECLARE_XATTR_GET           0x2004
733 #define OBD_FAIL_DT_XATTR_GET                   0x2005
734 #define OBD_FAIL_DT_DECLARE_XATTR_SET           0x2006
735 #define OBD_FAIL_DT_XATTR_SET                   0x2007
736 #define OBD_FAIL_DT_DECLARE_XATTR_DEL           0x2008
737 #define OBD_FAIL_DT_XATTR_DEL                   0x2009
738 #define OBD_FAIL_DT_XATTR_LIST                  0x200a
739 #define OBD_FAIL_DT_DECLARE_CREATE              0x200b
740 #define OBD_FAIL_DT_CREATE                      0x200c
741 #define OBD_FAIL_DT_DECLARE_DESTROY             0x200d
742 #define OBD_FAIL_DT_DESTROY                     0x200e
743 #define OBD_FAIL_DT_INDEX_TRY                   0x200f
744 #define OBD_FAIL_DT_DECLARE_REF_ADD             0x2010
745 #define OBD_FAIL_DT_REF_ADD                     0x2011
746 #define OBD_FAIL_DT_DECLARE_REF_DEL             0x2012
747 #define OBD_FAIL_DT_REF_DEL                     0x2013
748 #define OBD_FAIL_DT_DECLARE_INSERT              0x2014
749 #define OBD_FAIL_DT_INSERT                      0x2015
750 #define OBD_FAIL_DT_DECLARE_DELETE              0x2016
751 #define OBD_FAIL_DT_DELETE                      0x2017
752 #define OBD_FAIL_DT_LOOKUP                      0x2018
753 #define OBD_FAIL_DT_TXN_STOP                    0x2019
754
755 #define OBD_FAIL_OSP_CHECK_INVALID_REC          0x2100
756 #define OBD_FAIL_OSP_CHECK_ENOMEM               0x2101
757 #define OBD_FAIL_OSP_FAKE_PRECREATE             0x2102
758 #define OBD_FAIL_OSP_RPCS_SEM                   0x2104
759 #define OBD_FAIL_OSP_CANT_PROCESS_LLOG          0x2105
760 #define OBD_FAIL_OSP_INVALID_LOGID              0x2106
761 #define OBD_FAIL_OSP_CON_EVENT_DELAY            0x2107
762 #define OBD_FAIL_OSP_FAIL_SEQ_ALLOC             0x2109
763
764 /* barrier */
765 #define OBD_FAIL_MGS_BARRIER_READ_NET           0x2200
766 #define OBD_FAIL_MGS_BARRIER_NOTIFY_NET         0x2201
767
768 #define OBD_FAIL_BARRIER_DELAY                  0x2202
769 #define OBD_FAIL_BARRIER_FAILURE                0x2203
770
771 #define OBD_FAIL_OSD_FAIL_AT_TRUNCATE           0x2301
772 #define OBD_FAIL_OSD_MARK_COMPRESSED            0x2302
773
774 /* continuation of MDS related constants */
775 #define OBD_FAIL_MDS_PAUSE_CREATE_AFTER_LOOKUP  0x2401
776 #define OBD_FAIL_MDS_CONNECT_ACCESS             0x2402
777 #define OBD_FAIL_MDS_PAUSE_GETATTR              0x2403
778
779 /* PLEASE, KEEP NUMBERS UP TO 0x3000 RESERVED FOR OBD_FAIL_MDS_* */
780
781 #define LUT_FAIL_CLASS(fail_id)                 (((fail_id) >> 8) << 16)
782 #define LUT_FAIL_MGT                            LUT_FAIL_CLASS(OBD_FAIL_MGS)
783 #define LUT_FAIL_MDT                            LUT_FAIL_CLASS(OBD_FAIL_MDS)
784 #define LUT_FAIL_OST                            LUT_FAIL_CLASS(OBD_FAIL_OST)
785
786 extern atomic64_t libcfs_kmem;
787
788 /* OBD_MEMORY_BATCH is the maximum error allowed per CPU core.  Since
789  * obd_memory_sum() is calling percpu_counter_sum_positive(), it adds
790  * up the per-core local delta anyway, so the per-core batch size is
791  * can be large.  This could be percpu_counter_add_local(), but that
792  * only exists in kernel 6.0 and later, and just uses a larger batch.
793  */
794 #define OBD_MEMORY_BATCH (16 * 1024 * 1024)
795
796 #ifndef HAVE_PERCPU_COUNTER_ADD_BATCH
797 #define percpu_counter_add_batch(fbc, amount, batch) \
798         __percpu_counter_add(fbc, amount, batch)
799 #endif
800
801 static inline void obd_memory_add(size_t size)
802 {
803         percpu_counter_add_batch(&obd_memory, size, OBD_MEMORY_BATCH);
804 }
805
806 static inline void obd_memory_sub(size_t size)
807 {
808         percpu_counter_add_batch(&obd_memory, -size, OBD_MEMORY_BATCH);
809 }
810
811 static inline s64 obd_memory_sum(void)
812 {
813         return percpu_counter_sum_positive(&obd_memory);
814 }
815
816 extern void obd_update_maxusage(void);
817 extern __u64 obd_memory_max(void);
818
819 #define OBD_DEBUG_MEMUSAGE (1)
820
821 #if OBD_DEBUG_MEMUSAGE
822 /* message format here needs to match regexp in lustre/tests/leak_finder.pl */
823 #define OBD_ALLOC_POST(ptr, size, name)                                 \
824         obd_memory_add(size);                                           \
825         LIBCFS_MEM_MSG(ptr, size, name)
826
827 /* message format here needs to match regexp in lustre/tests/leak_finder.pl */
828 #define OBD_FREE_PRE(ptr, size, name)                                   \
829 do {                                                                    \
830         if (likely(ptr)) {                                              \
831                 obd_memory_sub(size);                                   \
832                 LIBCFS_MEM_MSG(ptr, size, name);                        \
833         }                                                               \
834 } while (0)
835
836 #else /* !OBD_DEBUG_MEMUSAGE */
837
838 #define OBD_ALLOC_POST(ptr, size, name) ((void)0)
839 #define OBD_FREE_PRE(ptr, size, name)   ((void)0)
840
841 #endif /* !OBD_DEBUG_MEMUSAGE */
842
843 #define __OBD_MALLOC_VERBOSE(ptr, cptab, cpt, size, flags)                    \
844 do {                                                                          \
845         if (cptab)                                                            \
846                 ptr = cfs_cpt_malloc((cptab), (cpt), (size),                  \
847                                      (flags) | __GFP_ZERO | __GFP_NOWARN);    \
848         if (!(cptab) || unlikely(!(ptr))) /* retry without CPT if failure */  \
849                 ptr = kmalloc(size, (flags) | __GFP_ZERO);                    \
850         if (likely((ptr) != NULL))                                            \
851                 OBD_ALLOC_POST((ptr), (size), "kmalloced");                   \
852 } while (0)
853
854 #define OBD_ALLOC_GFP(ptr, size, gfp_mask)                                    \
855         __OBD_MALLOC_VERBOSE(ptr, NULL, 0, size, gfp_mask)
856
857 #define OBD_ALLOC(ptr, size) OBD_ALLOC_GFP(ptr, size, GFP_NOFS)
858 #define OBD_ALLOC_WAIT(ptr, size) OBD_ALLOC_GFP(ptr, size, GFP_KERNEL)
859 #define OBD_ALLOC_PTR(ptr) OBD_ALLOC(ptr, sizeof(*(ptr)))
860 #define OBD_ALLOC_PTR_WAIT(ptr) OBD_ALLOC_WAIT(ptr, sizeof(*(ptr)))
861 #define OBD_ALLOC_PTR_ARRAY(ptr, n) OBD_ALLOC(ptr, (n) * sizeof(*(ptr)))
862 #define OBD_ALLOC_PTR_ARRAY_WAIT(ptr, n)                                      \
863                 OBD_ALLOC_WAIT(ptr, (n) * sizeof(*(ptr)))
864
865 #define OBD_CPT_ALLOC_GFP(ptr, cptab, cpt, size, gfp_mask)                    \
866         __OBD_MALLOC_VERBOSE(ptr, cptab, cpt, size, gfp_mask)
867
868 #define OBD_CPT_ALLOC(ptr, cptab, cpt, size)                                  \
869         OBD_CPT_ALLOC_GFP(ptr, cptab, cpt, size, GFP_NOFS)
870
871 #define OBD_CPT_ALLOC_PTR(ptr, cptab, cpt)                                    \
872         OBD_CPT_ALLOC(ptr, cptab, cpt, sizeof(*(ptr)))
873
874 /* Direct use of __vmalloc() allows for protection flag specification
875  * (and particularly to not set __GFP_FS, which is likely to cause some
876  * deadlock situations in our code).
877  */
878 #define __OBD_VMALLOC_VERBOSE(ptr, cptab, cpt, size)                          \
879 do {                                                                          \
880         (ptr) = cptab == NULL ?                                               \
881                 __ll_vmalloc(size, GFP_NOFS | __GFP_HIGHMEM | __GFP_ZERO) :   \
882                 cfs_cpt_vzalloc(cptab, cpt, size);                            \
883         if (unlikely((ptr) == NULL)) {                                        \
884                 CERROR("vmalloc of '" #ptr "' (%d bytes) failed\n",           \
885                        (int)(size));                                          \
886                 CERROR("%llu total bytes allocated by Lustre, %lld by LNET\n",\
887                        obd_memory_sum(), libcfs_kmem_read());\
888         } else {                                                              \
889                 OBD_ALLOC_POST(ptr, size, "vmalloced");                       \
890         }                                                                     \
891 } while(0)
892
893 #define OBD_VMALLOC(ptr, size)                                                \
894          __OBD_VMALLOC_VERBOSE(ptr, NULL, 0, size)
895 #define OBD_CPT_VMALLOC(ptr, cptab, cpt, size)                                \
896          __OBD_VMALLOC_VERBOSE(ptr, cptab, cpt, size)
897
898 #define OBD_ALLOC_LARGE(ptr, size)                                            \
899 do {                                                                          \
900         /* LU-8196 - force large allocations to use vmalloc, not kmalloc */   \
901         if ((size) > KMALLOC_MAX_SIZE)                                        \
902                 ptr = NULL;                                                   \
903         else                                                                  \
904                 OBD_ALLOC_GFP(ptr, size, GFP_NOFS | __GFP_NOWARN |            \
905                               (((size) > PAGE_SIZE) ? __GFP_NORETRY : 0));    \
906         if (ptr == NULL)                                                      \
907                 OBD_VMALLOC(ptr, size);                                       \
908 } while (0)
909
910 #define OBD_ALLOC_PTR_ARRAY_LARGE(ptr, n)                               \
911         OBD_ALLOC_LARGE(ptr, (n) * sizeof(*(ptr)))
912
913 #define OBD_CPT_ALLOC_LARGE(ptr, cptab, cpt, size)                            \
914 do {                                                                          \
915         OBD_CPT_ALLOC_GFP(ptr, cptab, cpt, size, GFP_NOFS | __GFP_NOWARN);    \
916         if (ptr == NULL)                                                      \
917                 OBD_CPT_VMALLOC(ptr, cptab, cpt, size);                       \
918 } while (0)
919
920 #ifdef CONFIG_DEBUG_SLAB
921 #define POISON(ptr, c, s) do {} while (0)
922 #define POISON_PTR(ptr)  ((void)0)
923 #else
924 #ifdef __underlying_memset
925 #define POISON(ptr, c, s) __underlying_memset(ptr, c, s)
926 #else
927 #define POISON(ptr, c, s) memset(ptr, c, s)
928 #endif
929 #define POISON_PTR(ptr)  (ptr) = (void *)0xdeadbeef
930 #endif
931
932 #ifdef POISON_BULK
933 #define POISON_PAGE(page, val) do { memset(kmap(page), val, PAGE_SIZE); \
934                                     kunmap(page); } while (0)
935 #else
936 #define POISON_PAGE(page, val) do { } while (0)
937 #endif
938
939 #define OBD_FREE(ptr, size)                                                   \
940 do {                                                                          \
941         if (likely(ptr)) {                                                    \
942                 OBD_FREE_PRE(ptr, size, "kfreed");                            \
943                 POISON(ptr, 0x5a, size);                                      \
944                 kfree(ptr);                                                   \
945                 POISON_PTR(ptr);                                              \
946         }                                                                     \
947 } while (0)
948
949 #define OBD_FREE_RCU(ptr, size, list)                                   \
950 do {                                                                    \
951         if (likely(ptr)) {                                              \
952                 OBD_FREE_PRE(ptr, size, "kfreed_rcu");                  \
953                 kfree_rcu(ptr, list);                                   \
954                 POISON_PTR(ptr);                                        \
955         }                                                               \
956 } while (0)
957
958 #define OBD_FREE_LARGE(ptr, size)                                             \
959 do {                                                                          \
960         if (is_vmalloc_addr(ptr)) {                                           \
961                 OBD_FREE_PRE(ptr, size, "vfreed");                            \
962                 POISON(ptr, 0x5a, size);                                      \
963                 libcfs_vfree_atomic(ptr);                                     \
964                 POISON_PTR(ptr);                                              \
965         } else {                                                              \
966                 OBD_FREE(ptr, size);                                          \
967         }                                                                     \
968 } while (0)
969
970 #define OBD_FREE_PTR_ARRAY_LARGE(ptr, n)                        \
971         OBD_FREE_LARGE(ptr, (n) * sizeof(*(ptr)))
972
973 #define __OBD_SLAB_ALLOC_VERBOSE(ptr, slab, cptab, cpt, size, type)           \
974 do {                                                                          \
975         LASSERT(ergo((type) != GFP_ATOMIC, !in_interrupt()));                 \
976         (ptr) = (cptab) == NULL ?                                             \
977                 kmem_cache_zalloc(slab, (type)) :                             \
978                 cfs_mem_cache_cpt_alloc(slab, cptab, cpt, (type) | __GFP_ZERO); \
979         if (likely((ptr)))                                                    \
980                 OBD_ALLOC_POST(ptr, size, "slab-alloced");                    \
981 } while(0)
982
983 #define OBD_SLAB_ALLOC_GFP(ptr, slab, size, flags)                            \
984         __OBD_SLAB_ALLOC_VERBOSE(ptr, slab, NULL, 0, size, flags)
985 #define OBD_SLAB_CPT_ALLOC_GFP(ptr, slab, cptab, cpt, size, flags)            \
986         __OBD_SLAB_ALLOC_VERBOSE(ptr, slab, cptab, cpt, size, flags)
987
988 #define OBD_FREE_PTR(ptr) OBD_FREE(ptr, sizeof(*(ptr)))
989 #define OBD_FREE_PTR_ARRAY(ptr, n) OBD_FREE(ptr, (n) * sizeof(*(ptr)))
990
991 #define OBD_SLAB_FREE(ptr, slab, size)                                        \
992 do {                                                                          \
993         if (likely(ptr)) {                                                    \
994                 OBD_FREE_PRE(ptr, size, "slab-freed");                        \
995                 POISON(ptr, 0x5a, size);                                      \
996                 kmem_cache_free(slab, ptr);                                   \
997                 POISON_PTR(ptr);                                              \
998         }                                                                     \
999 } while(0)
1000
1001 #define OBD_SLAB_ALLOC(ptr, slab, size)                                       \
1002         OBD_SLAB_ALLOC_GFP(ptr, slab, size, GFP_NOFS)
1003
1004 #define OBD_SLAB_CPT_ALLOC(ptr, slab, cptab, cpt, size)                       \
1005         OBD_SLAB_CPT_ALLOC_GFP(ptr, slab, cptab, cpt, size, GFP_NOFS)
1006
1007 #define OBD_SLAB_ALLOC_PTR(ptr, slab)                                         \
1008         OBD_SLAB_ALLOC(ptr, slab, sizeof(*(ptr)))
1009
1010 #define OBD_SLAB_CPT_ALLOC_PTR(ptr, slab, cptab, cpt)                         \
1011         OBD_SLAB_CPT_ALLOC(ptr, slab, cptab, cpt, sizeof(*(ptr)))
1012
1013 #define OBD_SLAB_ALLOC_PTR_GFP(ptr, slab, flags)                              \
1014         OBD_SLAB_ALLOC_GFP(ptr, slab, sizeof(*(ptr)), flags)
1015
1016 #define OBD_SLAB_CPT_ALLOC_PTR_GFP(ptr, slab, cptab, cpt, flags)              \
1017         OBD_SLAB_CPT_ALLOC_GFP(ptr, slab, cptab, cpt, sizeof(*(ptr)), flags)
1018
1019 #define OBD_SLAB_FREE_PTR(ptr, slab)                                          \
1020         OBD_SLAB_FREE((ptr), (slab), sizeof(*(ptr)))
1021
1022 #define KEY_IS(str) \
1023         (keylen >= (sizeof(str)-1) && memcmp(key, str, (sizeof(str)-1)) == 0)
1024
1025 #define OBD_STRNDUP(str, orig, len)             \
1026 do {                                            \
1027         OBD_ALLOC(str, len + 1);                \
1028         if (likely(str))                        \
1029                 memcpy(str, orig, len + 1);     \
1030 } while(0)
1031
1032 #define OBD_FREE_STR(str)                       \
1033 do {                                            \
1034         if (str) {                              \
1035                 int len = strlen(str) + 1;      \
1036                 OBD_FREE(str, len);             \
1037         }                                       \
1038 } while (0)
1039
1040 #ifdef HAVE_SERVER_SUPPORT
1041 /* LUSTRE_LMA_FL_MASKS defines which flags will be stored in LMA */
1042
1043 static inline int lma_to_lustre_flags(__u32 lma_flags)
1044 {
1045         return (((lma_flags & LMAI_ORPHAN) ? LUSTRE_ORPHAN_FL : 0) |
1046                 ((lma_flags & LMAI_ENCRYPT) ? LUSTRE_ENCRYPT_FL : 0));
1047 }
1048
1049 static inline int lustre_to_lma_flags(__u32 la_flags)
1050 {
1051         return (((la_flags & LUSTRE_ORPHAN_FL) ? LMAI_ORPHAN : 0) |
1052                 ((la_flags & LUSTRE_ENCRYPT_FL) ? LMAI_ENCRYPT : 0));
1053 }
1054 #endif /* HAVE_SERVER_SUPPORT */
1055
1056 /* Convert wire LUSTRE_*_FL to corresponding client local VFS S_* values
1057  * for the client inode i_flags.  The LUSTRE_*_FL are the Lustre wire
1058  * protocol equivalents of LDISKFS_*_FL values stored on disk, while
1059  * the S_* flags are kernel-internal values that change between kernel
1060  * versions. These are set/cleared via FS_IOC_GETFLAGS/FS_IOC_SETFLAGS.
1061  * See b=16526 for a full history.
1062  */
1063 static inline int ll_ext_to_inode_flags(int ext_flags)
1064 {
1065         return (((ext_flags & LUSTRE_SYNC_FL)      ? S_SYNC      : 0) |
1066                 ((ext_flags & LUSTRE_NOATIME_FL)   ? S_NOATIME   : 0) |
1067                 ((ext_flags & LUSTRE_APPEND_FL)    ? S_APPEND    : 0) |
1068                 ((ext_flags & LUSTRE_DIRSYNC_FL)   ? S_DIRSYNC   : 0) |
1069 #if defined(S_ENCRYPTED)
1070                 ((ext_flags & LUSTRE_ENCRYPT_FL)   ? S_ENCRYPTED : 0) |
1071 #endif
1072                 ((ext_flags & LUSTRE_IMMUTABLE_FL) ? S_IMMUTABLE : 0));
1073 }
1074
1075 static inline int ll_inode_to_ext_flags(int inode_flags)
1076 {
1077         return (((inode_flags & S_SYNC)      ? LUSTRE_SYNC_FL      : 0) |
1078                 ((inode_flags & S_NOATIME)   ? LUSTRE_NOATIME_FL   : 0) |
1079                 ((inode_flags & S_APPEND)    ? LUSTRE_APPEND_FL    : 0) |
1080                 ((inode_flags & S_DIRSYNC)   ? LUSTRE_DIRSYNC_FL   : 0) |
1081 #if defined(S_ENCRYPTED)
1082                 ((inode_flags & S_ENCRYPTED) ? LUSTRE_ENCRYPT_FL   : 0) |
1083 #endif
1084                 ((inode_flags & S_IMMUTABLE) ? LUSTRE_IMMUTABLE_FL : 0));
1085 }
1086
1087 struct obd_heat_instance {
1088         __u64 ohi_heat;
1089         __u64 ohi_time_second;
1090         __u64 ohi_count;
1091 };
1092
1093 /* Define a fixed 4096-byte encryption unit size */
1094 #define LUSTRE_ENCRYPTION_BLOCKBITS   12
1095 #define LUSTRE_ENCRYPTION_UNIT_SIZE   ((size_t)1 << LUSTRE_ENCRYPTION_BLOCKBITS)
1096 #define LUSTRE_ENCRYPTION_MASK        (~(LUSTRE_ENCRYPTION_UNIT_SIZE - 1))
1097
1098 /* filename encoding */
1099 extern const char *encode_fn_len(const char *fname, size_t namelen);
1100 static inline const char *encode_fn(const char *fname)
1101 {
1102         return encode_fn_len(fname, fname ? strnlen(fname, PATH_MAX) : 0);
1103 }
1104
1105 /* for format DNAME "%.*s" */
1106 #define DNAME "%.*s"
1107 #define encode_fn_dname(len, fname)     (int)(len), encode_fn_len(fname, len)
1108 #define encode_fn_luname(ln)    \
1109                 encode_fn_dname((ln)->ln_namelen,       \
1110                                 lu_name_is_valid(ln) ? (ln)->ln_name : "")
1111 #define encode_fn_opdata(op)    encode_fn_dname((op)->op_namelen, (op)->op_name)
1112 #define encode_fn_oied(ent)     \
1113                 encode_fn_dname((ent)->oied_namelen, (ent)->oied_name)
1114 #define encode_fn_qstr(qs)      encode_fn_dname((qs).len, (qs).name)
1115 #define encode_fn_dentry(de)    encode_fn_qstr((de)->d_name)
1116 #define encode_fn_file(file)    encode_fn_dentry(file_dentry(file))
1117
1118 #endif