]> Git Repo - J-linux.git/blob - include/trace/events/afs.h
Merge tag 'vfs-6.13-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
[J-linux.git] / include / trace / events / afs.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /* AFS tracepoints
3  *
4  * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved.
5  * Written by David Howells ([email protected])
6  */
7 #undef TRACE_SYSTEM
8 #define TRACE_SYSTEM afs
9
10 #if !defined(_TRACE_AFS_H) || defined(TRACE_HEADER_MULTI_READ)
11 #define _TRACE_AFS_H
12
13 #include <linux/tracepoint.h>
14
15 /*
16  * Define enums for tracing information.
17  */
18 #ifndef __AFS_DECLARE_TRACE_ENUMS_ONCE_ONLY
19 #define __AFS_DECLARE_TRACE_ENUMS_ONCE_ONLY
20
21 enum afs_fs_operation {
22         afs_FS_FetchData                = 130,  /* AFS Fetch file data */
23         afs_FS_FetchACL                 = 131,  /* AFS Fetch file ACL */
24         afs_FS_FetchStatus              = 132,  /* AFS Fetch file status */
25         afs_FS_StoreData                = 133,  /* AFS Store file data */
26         afs_FS_StoreACL                 = 134,  /* AFS Store file ACL */
27         afs_FS_StoreStatus              = 135,  /* AFS Store file status */
28         afs_FS_RemoveFile               = 136,  /* AFS Remove a file */
29         afs_FS_CreateFile               = 137,  /* AFS Create a file */
30         afs_FS_Rename                   = 138,  /* AFS Rename or move a file or directory */
31         afs_FS_Symlink                  = 139,  /* AFS Create a symbolic link */
32         afs_FS_Link                     = 140,  /* AFS Create a hard link */
33         afs_FS_MakeDir                  = 141,  /* AFS Create a directory */
34         afs_FS_RemoveDir                = 142,  /* AFS Remove a directory */
35         afs_FS_GetVolumeInfo            = 148,  /* AFS Get information about a volume */
36         afs_FS_GetVolumeStatus          = 149,  /* AFS Get volume status information */
37         afs_FS_GetRootVolume            = 151,  /* AFS Get root volume name */
38         afs_FS_SetLock                  = 156,  /* AFS Request a file lock */
39         afs_FS_ExtendLock               = 157,  /* AFS Extend a file lock */
40         afs_FS_ReleaseLock              = 158,  /* AFS Release a file lock */
41         afs_FS_Lookup                   = 161,  /* AFS lookup file in directory */
42         afs_FS_InlineBulkStatus         = 65536, /* AFS Fetch multiple file statuses with errors */
43         afs_FS_FetchData64              = 65537, /* AFS Fetch file data */
44         afs_FS_StoreData64              = 65538, /* AFS Store file data */
45         afs_FS_GiveUpAllCallBacks       = 65539, /* AFS Give up all our callbacks on a server */
46         afs_FS_GetCapabilities          = 65540, /* AFS Get FS server capabilities */
47
48         yfs_FS_FetchData                = 130,   /* YFS Fetch file data */
49         yfs_FS_FetchACL                 = 64131, /* YFS Fetch file ACL */
50         yfs_FS_FetchStatus              = 64132, /* YFS Fetch file status */
51         yfs_FS_StoreACL                 = 64134, /* YFS Store file ACL */
52         yfs_FS_StoreStatus              = 64135, /* YFS Store file status */
53         yfs_FS_RemoveFile               = 64136, /* YFS Remove a file */
54         yfs_FS_CreateFile               = 64137, /* YFS Create a file */
55         yfs_FS_Rename                   = 64138, /* YFS Rename or move a file or directory */
56         yfs_FS_Symlink                  = 64139, /* YFS Create a symbolic link */
57         yfs_FS_Link                     = 64140, /* YFS Create a hard link */
58         yfs_FS_MakeDir                  = 64141, /* YFS Create a directory */
59         yfs_FS_RemoveDir                = 64142, /* YFS Remove a directory */
60         yfs_FS_GetVolumeStatus          = 64149, /* YFS Get volume status information */
61         yfs_FS_SetVolumeStatus          = 64150, /* YFS Set volume status information */
62         yfs_FS_SetLock                  = 64156, /* YFS Request a file lock */
63         yfs_FS_ExtendLock               = 64157, /* YFS Extend a file lock */
64         yfs_FS_ReleaseLock              = 64158, /* YFS Release a file lock */
65         yfs_FS_Lookup                   = 64161, /* YFS lookup file in directory */
66         yfs_FS_FlushCPS                 = 64165,
67         yfs_FS_FetchOpaqueACL           = 64168,
68         yfs_FS_WhoAmI                   = 64170,
69         yfs_FS_RemoveACL                = 64171,
70         yfs_FS_RemoveFile2              = 64173,
71         yfs_FS_StoreOpaqueACL2          = 64174,
72         yfs_FS_InlineBulkStatus         = 64536, /* YFS Fetch multiple file statuses with errors */
73         yfs_FS_FetchData64              = 64537, /* YFS Fetch file data */
74         yfs_FS_StoreData64              = 64538, /* YFS Store file data */
75         yfs_FS_UpdateSymlink            = 64540,
76 };
77
78 enum afs_vl_operation {
79         afs_VL_GetEntryByNameU  = 527,          /* AFS Get Vol Entry By Name operation ID */
80         afs_VL_GetAddrsU        = 533,          /* AFS Get FS server addresses */
81         afs_YFSVL_GetEndpoints  = 64002,        /* YFS Get FS & Vol server addresses */
82         afs_YFSVL_GetCellName   = 64014,        /* YFS Get actual cell name */
83         afs_VL_GetCapabilities  = 65537,        /* AFS Get VL server capabilities */
84 };
85
86 enum afs_cm_operation {
87         afs_CB_CallBack                 = 204,  /* AFS break callback promises */
88         afs_CB_InitCallBackState        = 205,  /* AFS initialise callback state */
89         afs_CB_Probe                    = 206,  /* AFS probe client */
90         afs_CB_GetLock                  = 207,  /* AFS get contents of CM lock table */
91         afs_CB_GetCE                    = 208,  /* AFS get cache file description */
92         afs_CB_GetXStatsVersion         = 209,  /* AFS get version of extended statistics */
93         afs_CB_GetXStats                = 210,  /* AFS get contents of extended statistics data */
94         afs_CB_InitCallBackState3       = 213,  /* AFS initialise callback state, version 3 */
95         afs_CB_ProbeUuid                = 214,  /* AFS check the client hasn't rebooted */
96 };
97
98 enum yfs_cm_operation {
99         yfs_CB_Probe                    = 206,  /* YFS probe client */
100         yfs_CB_GetLock                  = 207,  /* YFS get contents of CM lock table */
101         yfs_CB_XStatsVersion            = 209,  /* YFS get version of extended statistics */
102         yfs_CB_GetXStats                = 210,  /* YFS get contents of extended statistics data */
103         yfs_CB_InitCallBackState3       = 213,  /* YFS initialise callback state, version 3 */
104         yfs_CB_ProbeUuid                = 214,  /* YFS check the client hasn't rebooted */
105         yfs_CB_GetServerPrefs           = 215,
106         yfs_CB_GetCellServDV            = 216,
107         yfs_CB_GetLocalCell             = 217,
108         yfs_CB_GetCacheConfig           = 218,
109         yfs_CB_GetCellByNum             = 65537,
110         yfs_CB_TellMeAboutYourself      = 65538, /* get client capabilities */
111         yfs_CB_CallBack                 = 64204,
112 };
113
114 #endif /* end __AFS_DECLARE_TRACE_ENUMS_ONCE_ONLY */
115
116 /*
117  * Declare tracing information enums and their string mappings for display.
118  */
119 #define afs_call_traces \
120         EM(afs_call_trace_alloc,                "ALLOC") \
121         EM(afs_call_trace_free,                 "FREE ") \
122         EM(afs_call_trace_get,                  "GET  ") \
123         EM(afs_call_trace_put,                  "PUT  ") \
124         EM(afs_call_trace_wake,                 "WAKE ") \
125         E_(afs_call_trace_work,                 "QUEUE")
126
127 #define afs_server_traces \
128         EM(afs_server_trace_alloc,              "ALLOC    ") \
129         EM(afs_server_trace_callback,           "CALLBACK ") \
130         EM(afs_server_trace_destroy,            "DESTROY  ") \
131         EM(afs_server_trace_free,               "FREE     ") \
132         EM(afs_server_trace_gc,                 "GC       ") \
133         EM(afs_server_trace_get_by_addr,        "GET addr ") \
134         EM(afs_server_trace_get_by_uuid,        "GET uuid ") \
135         EM(afs_server_trace_get_caps,           "GET caps ") \
136         EM(afs_server_trace_get_install,        "GET inst ") \
137         EM(afs_server_trace_get_new_cbi,        "GET cbi  ") \
138         EM(afs_server_trace_get_probe,          "GET probe") \
139         EM(afs_server_trace_give_up_cb,         "giveup-cb") \
140         EM(afs_server_trace_purging,            "PURGE    ") \
141         EM(afs_server_trace_put_call,           "PUT call ") \
142         EM(afs_server_trace_put_cbi,            "PUT cbi  ") \
143         EM(afs_server_trace_put_find_rsq,       "PUT f-rsq") \
144         EM(afs_server_trace_put_probe,          "PUT probe") \
145         EM(afs_server_trace_put_slist,          "PUT slist") \
146         EM(afs_server_trace_put_slist_isort,    "PUT isort") \
147         EM(afs_server_trace_put_uuid_rsq,       "PUT u-req") \
148         E_(afs_server_trace_update,             "UPDATE")
149
150 #define afs_volume_traces \
151         EM(afs_volume_trace_alloc,              "ALLOC         ") \
152         EM(afs_volume_trace_free,               "FREE          ") \
153         EM(afs_volume_trace_get_alloc_sbi,      "GET sbi-alloc ") \
154         EM(afs_volume_trace_get_callback,       "GET callback  ") \
155         EM(afs_volume_trace_get_cell_insert,    "GET cell-insrt") \
156         EM(afs_volume_trace_get_new_op,         "GET op-new    ") \
157         EM(afs_volume_trace_get_query_alias,    "GET cell-alias") \
158         EM(afs_volume_trace_put_callback,       "PUT callback  ") \
159         EM(afs_volume_trace_put_cell_dup,       "PUT cell-dup  ") \
160         EM(afs_volume_trace_put_cell_root,      "PUT cell-root ") \
161         EM(afs_volume_trace_put_destroy_sbi,    "PUT sbi-destry") \
162         EM(afs_volume_trace_put_free_fc,        "PUT fc-free   ") \
163         EM(afs_volume_trace_put_put_op,         "PUT op-put    ") \
164         EM(afs_volume_trace_put_query_alias,    "PUT cell-alias") \
165         EM(afs_volume_trace_put_validate_fc,    "PUT fc-validat") \
166         E_(afs_volume_trace_remove,             "REMOVE        ")
167
168 #define afs_cell_traces \
169         EM(afs_cell_trace_alloc,                "ALLOC     ") \
170         EM(afs_cell_trace_free,                 "FREE      ") \
171         EM(afs_cell_trace_get_queue_dns,        "GET q-dns ") \
172         EM(afs_cell_trace_get_queue_manage,     "GET q-mng ") \
173         EM(afs_cell_trace_get_queue_new,        "GET q-new ") \
174         EM(afs_cell_trace_get_vol,              "GET vol   ") \
175         EM(afs_cell_trace_insert,               "INSERT    ") \
176         EM(afs_cell_trace_manage,               "MANAGE    ") \
177         EM(afs_cell_trace_put_candidate,        "PUT candid") \
178         EM(afs_cell_trace_put_destroy,          "PUT destry") \
179         EM(afs_cell_trace_put_queue_work,       "PUT q-work") \
180         EM(afs_cell_trace_put_queue_fail,       "PUT q-fail") \
181         EM(afs_cell_trace_put_vol,              "PUT vol   ") \
182         EM(afs_cell_trace_see_source,           "SEE source") \
183         EM(afs_cell_trace_see_ws,               "SEE ws    ") \
184         EM(afs_cell_trace_unuse_alias,          "UNU alias ") \
185         EM(afs_cell_trace_unuse_check_alias,    "UNU chk-al") \
186         EM(afs_cell_trace_unuse_delete,         "UNU delete") \
187         EM(afs_cell_trace_unuse_fc,             "UNU fc    ") \
188         EM(afs_cell_trace_unuse_lookup,         "UNU lookup") \
189         EM(afs_cell_trace_unuse_mntpt,          "UNU mntpt ") \
190         EM(afs_cell_trace_unuse_no_pin,         "UNU no-pin") \
191         EM(afs_cell_trace_unuse_parse,          "UNU parse ") \
192         EM(afs_cell_trace_unuse_pin,            "UNU pin   ") \
193         EM(afs_cell_trace_unuse_probe,          "UNU probe ") \
194         EM(afs_cell_trace_unuse_sbi,            "UNU sbi   ") \
195         EM(afs_cell_trace_unuse_ws,             "UNU ws    ") \
196         EM(afs_cell_trace_use_alias,            "USE alias ") \
197         EM(afs_cell_trace_use_check_alias,      "USE chk-al") \
198         EM(afs_cell_trace_use_fc,               "USE fc    ") \
199         EM(afs_cell_trace_use_fc_alias,         "USE fc-al ") \
200         EM(afs_cell_trace_use_lookup,           "USE lookup") \
201         EM(afs_cell_trace_use_mntpt,            "USE mntpt ") \
202         EM(afs_cell_trace_use_pin,              "USE pin   ") \
203         EM(afs_cell_trace_use_probe,            "USE probe ") \
204         EM(afs_cell_trace_use_sbi,              "USE sbi   ") \
205         E_(afs_cell_trace_wait,                 "WAIT      ")
206
207 #define afs_alist_traces \
208         EM(afs_alist_trace_alloc,               "ALLOC     ") \
209         EM(afs_alist_trace_get_estate,          "GET estate") \
210         EM(afs_alist_trace_get_vlgetcaps,       "GET vgtcap") \
211         EM(afs_alist_trace_get_vlprobe,         "GET vprobe") \
212         EM(afs_alist_trace_get_vlrotate_set,    "GET vl-rot") \
213         EM(afs_alist_trace_put_estate,          "PUT estate") \
214         EM(afs_alist_trace_put_getaddru,        "PUT GtAdrU") \
215         EM(afs_alist_trace_put_parse_empty,     "PUT p-empt") \
216         EM(afs_alist_trace_put_parse_error,     "PUT p-err ") \
217         EM(afs_alist_trace_put_server_dup,      "PUT sv-dup") \
218         EM(afs_alist_trace_put_server_oom,      "PUT sv-oom") \
219         EM(afs_alist_trace_put_server_update,   "PUT sv-upd") \
220         EM(afs_alist_trace_put_vlgetcaps,       "PUT vgtcap") \
221         EM(afs_alist_trace_put_vlprobe,         "PUT vprobe") \
222         EM(afs_alist_trace_put_vlrotate_end,    "PUT vr-end") \
223         EM(afs_alist_trace_put_vlrotate_fail,   "PUT vr-fai") \
224         EM(afs_alist_trace_put_vlrotate_next,   "PUT vr-nxt") \
225         EM(afs_alist_trace_put_vlrotate_restart,"PUT vr-rst") \
226         EM(afs_alist_trace_put_vlserver,        "PUT vlsrvr") \
227         EM(afs_alist_trace_put_vlserver_old,    "PUT vs-old") \
228         E_(afs_alist_trace_free,                "FREE      ")
229
230 #define afs_estate_traces \
231         EM(afs_estate_trace_alloc_probe,        "ALLOC prob") \
232         EM(afs_estate_trace_alloc_server,       "ALLOC srvr") \
233         EM(afs_estate_trace_get_server_state,   "GET srv-st") \
234         EM(afs_estate_trace_get_getcaps,        "GET getcap") \
235         EM(afs_estate_trace_put_getcaps,        "PUT getcap") \
236         EM(afs_estate_trace_put_probe,          "PUT probe ") \
237         EM(afs_estate_trace_put_server,         "PUT server") \
238         EM(afs_estate_trace_put_server_state,   "PUT srv-st") \
239         E_(afs_estate_trace_free,               "FREE      ")
240
241 #define afs_fs_operations \
242         EM(afs_FS_FetchData,                    "FS.FetchData") \
243         EM(afs_FS_FetchStatus,                  "FS.FetchStatus") \
244         EM(afs_FS_StoreData,                    "FS.StoreData") \
245         EM(afs_FS_StoreStatus,                  "FS.StoreStatus") \
246         EM(afs_FS_RemoveFile,                   "FS.RemoveFile") \
247         EM(afs_FS_CreateFile,                   "FS.CreateFile") \
248         EM(afs_FS_Rename,                       "FS.Rename") \
249         EM(afs_FS_Symlink,                      "FS.Symlink") \
250         EM(afs_FS_Link,                         "FS.Link") \
251         EM(afs_FS_MakeDir,                      "FS.MakeDir") \
252         EM(afs_FS_RemoveDir,                    "FS.RemoveDir") \
253         EM(afs_FS_GetVolumeInfo,                "FS.GetVolumeInfo") \
254         EM(afs_FS_GetVolumeStatus,              "FS.GetVolumeStatus") \
255         EM(afs_FS_GetRootVolume,                "FS.GetRootVolume") \
256         EM(afs_FS_SetLock,                      "FS.SetLock") \
257         EM(afs_FS_ExtendLock,                   "FS.ExtendLock") \
258         EM(afs_FS_ReleaseLock,                  "FS.ReleaseLock") \
259         EM(afs_FS_Lookup,                       "FS.Lookup") \
260         EM(afs_FS_InlineBulkStatus,             "FS.InlineBulkStatus") \
261         EM(afs_FS_FetchData64,                  "FS.FetchData64") \
262         EM(afs_FS_StoreData64,                  "FS.StoreData64") \
263         EM(afs_FS_GiveUpAllCallBacks,           "FS.GiveUpAllCallBacks") \
264         EM(afs_FS_GetCapabilities,              "FS.GetCapabilities") \
265         EM(yfs_FS_FetchACL,                     "YFS.FetchACL") \
266         EM(yfs_FS_FetchStatus,                  "YFS.FetchStatus") \
267         EM(yfs_FS_StoreACL,                     "YFS.StoreACL") \
268         EM(yfs_FS_StoreStatus,                  "YFS.StoreStatus") \
269         EM(yfs_FS_RemoveFile,                   "YFS.RemoveFile") \
270         EM(yfs_FS_CreateFile,                   "YFS.CreateFile") \
271         EM(yfs_FS_Rename,                       "YFS.Rename") \
272         EM(yfs_FS_Symlink,                      "YFS.Symlink") \
273         EM(yfs_FS_Link,                         "YFS.Link") \
274         EM(yfs_FS_MakeDir,                      "YFS.MakeDir") \
275         EM(yfs_FS_RemoveDir,                    "YFS.RemoveDir") \
276         EM(yfs_FS_GetVolumeStatus,              "YFS.GetVolumeStatus") \
277         EM(yfs_FS_SetVolumeStatus,              "YFS.SetVolumeStatus") \
278         EM(yfs_FS_SetLock,                      "YFS.SetLock") \
279         EM(yfs_FS_ExtendLock,                   "YFS.ExtendLock") \
280         EM(yfs_FS_ReleaseLock,                  "YFS.ReleaseLock") \
281         EM(yfs_FS_Lookup,                       "YFS.Lookup") \
282         EM(yfs_FS_FlushCPS,                     "YFS.FlushCPS") \
283         EM(yfs_FS_FetchOpaqueACL,               "YFS.FetchOpaqueACL") \
284         EM(yfs_FS_WhoAmI,                       "YFS.WhoAmI") \
285         EM(yfs_FS_RemoveACL,                    "YFS.RemoveACL") \
286         EM(yfs_FS_RemoveFile2,                  "YFS.RemoveFile2") \
287         EM(yfs_FS_StoreOpaqueACL2,              "YFS.StoreOpaqueACL2") \
288         EM(yfs_FS_InlineBulkStatus,             "YFS.InlineBulkStatus") \
289         EM(yfs_FS_FetchData64,                  "YFS.FetchData64") \
290         EM(yfs_FS_StoreData64,                  "YFS.StoreData64") \
291         E_(yfs_FS_UpdateSymlink,                "YFS.UpdateSymlink")
292
293 #define afs_vl_operations \
294         EM(afs_VL_GetEntryByNameU,              "VL.GetEntryByNameU") \
295         EM(afs_VL_GetAddrsU,                    "VL.GetAddrsU") \
296         EM(afs_YFSVL_GetEndpoints,              "YFSVL.GetEndpoints") \
297         EM(afs_YFSVL_GetCellName,               "YFSVL.GetCellName") \
298         E_(afs_VL_GetCapabilities,              "VL.GetCapabilities")
299
300 #define afs_cm_operations \
301         EM(afs_CB_CallBack,                     "CB.CallBack") \
302         EM(afs_CB_InitCallBackState,            "CB.InitCallBackState") \
303         EM(afs_CB_Probe,                        "CB.Probe") \
304         EM(afs_CB_GetLock,                      "CB.GetLock") \
305         EM(afs_CB_GetCE,                        "CB.GetCE") \
306         EM(afs_CB_GetXStatsVersion,             "CB.GetXStatsVersion") \
307         EM(afs_CB_GetXStats,                    "CB.GetXStats") \
308         EM(afs_CB_InitCallBackState3,           "CB.InitCallBackState3") \
309         E_(afs_CB_ProbeUuid,                    "CB.ProbeUuid")
310
311 #define yfs_cm_operations \
312         EM(yfs_CB_Probe,                        "YFSCB.Probe") \
313         EM(yfs_CB_GetLock,                      "YFSCB.GetLock") \
314         EM(yfs_CB_XStatsVersion,                "YFSCB.XStatsVersion") \
315         EM(yfs_CB_GetXStats,                    "YFSCB.GetXStats") \
316         EM(yfs_CB_InitCallBackState3,           "YFSCB.InitCallBackState3") \
317         EM(yfs_CB_ProbeUuid,                    "YFSCB.ProbeUuid") \
318         EM(yfs_CB_GetServerPrefs,               "YFSCB.GetServerPrefs") \
319         EM(yfs_CB_GetCellServDV,                "YFSCB.GetCellServDV") \
320         EM(yfs_CB_GetLocalCell,                 "YFSCB.GetLocalCell") \
321         EM(yfs_CB_GetCacheConfig,               "YFSCB.GetCacheConfig") \
322         EM(yfs_CB_GetCellByNum,                 "YFSCB.GetCellByNum") \
323         EM(yfs_CB_TellMeAboutYourself,          "YFSCB.TellMeAboutYourself") \
324         E_(yfs_CB_CallBack,                     "YFSCB.CallBack")
325
326 #define afs_edit_dir_ops                                  \
327         EM(afs_edit_dir_create,                 "create") \
328         EM(afs_edit_dir_create_error,           "c_fail") \
329         EM(afs_edit_dir_create_inval,           "c_invl") \
330         EM(afs_edit_dir_create_nospc,           "c_nspc") \
331         EM(afs_edit_dir_delete,                 "delete") \
332         EM(afs_edit_dir_delete_error,           "d_err ") \
333         EM(afs_edit_dir_delete_inval,           "d_invl") \
334         EM(afs_edit_dir_delete_noent,           "d_nent") \
335         EM(afs_edit_dir_update_dd,              "u_ddot") \
336         EM(afs_edit_dir_update_error,           "u_fail") \
337         EM(afs_edit_dir_update_inval,           "u_invl") \
338         E_(afs_edit_dir_update_nodd,            "u_nodd")
339
340 #define afs_edit_dir_reasons                              \
341         EM(afs_edit_dir_for_create,             "Create") \
342         EM(afs_edit_dir_for_link,               "Link  ") \
343         EM(afs_edit_dir_for_mkdir,              "MkDir ") \
344         EM(afs_edit_dir_for_rename_0,           "Renam0") \
345         EM(afs_edit_dir_for_rename_1,           "Renam1") \
346         EM(afs_edit_dir_for_rename_2,           "Renam2") \
347         EM(afs_edit_dir_for_rename_sub,         "RnmSub") \
348         EM(afs_edit_dir_for_rmdir,              "RmDir ") \
349         EM(afs_edit_dir_for_silly_0,            "S_Ren0") \
350         EM(afs_edit_dir_for_silly_1,            "S_Ren1") \
351         EM(afs_edit_dir_for_symlink,            "Symlnk") \
352         E_(afs_edit_dir_for_unlink,             "Unlink")
353
354 #define afs_eproto_causes                       \
355         EM(afs_eproto_bad_status,       "BadStatus") \
356         EM(afs_eproto_cb_count,         "CbCount") \
357         EM(afs_eproto_cb_fid_count,     "CbFidCount") \
358         EM(afs_eproto_cellname_len,     "CellNameLen") \
359         EM(afs_eproto_file_type,        "FileTYpe") \
360         EM(afs_eproto_ibulkst_cb_count, "IBS.CbCount") \
361         EM(afs_eproto_ibulkst_count,    "IBS.FidCount") \
362         EM(afs_eproto_motd_len,         "MotdLen") \
363         EM(afs_eproto_offline_msg_len,  "OfflineMsgLen") \
364         EM(afs_eproto_volname_len,      "VolNameLen") \
365         EM(afs_eproto_yvl_fsendpt4_len, "YVL.FsEnd4Len") \
366         EM(afs_eproto_yvl_fsendpt6_len, "YVL.FsEnd6Len") \
367         EM(afs_eproto_yvl_fsendpt_num,  "YVL.FsEndCount") \
368         EM(afs_eproto_yvl_fsendpt_type, "YVL.FsEndType") \
369         EM(afs_eproto_yvl_vlendpt4_len, "YVL.VlEnd4Len") \
370         EM(afs_eproto_yvl_vlendpt6_len, "YVL.VlEnd6Len") \
371         E_(afs_eproto_yvl_vlendpt_type, "YVL.VlEndType")
372
373 #define afs_io_errors                                                   \
374         EM(afs_io_error_cm_reply,               "CM_REPLY")             \
375         EM(afs_io_error_extract,                "EXTRACT")              \
376         EM(afs_io_error_fs_probe_fail,          "FS_PROBE_FAIL")        \
377         EM(afs_io_error_vl_lookup_fail,         "VL_LOOKUP_FAIL")       \
378         E_(afs_io_error_vl_probe_fail,          "VL_PROBE_FAIL")
379
380 #define afs_file_errors                                                 \
381         EM(afs_file_error_dir_bad_magic,        "DIR_BAD_MAGIC")        \
382         EM(afs_file_error_dir_big,              "DIR_BIG")              \
383         EM(afs_file_error_dir_missing_page,     "DIR_MISSING_PAGE")     \
384         EM(afs_file_error_dir_name_too_long,    "DIR_NAME_TOO_LONG")    \
385         EM(afs_file_error_dir_over_end,         "DIR_ENT_OVER_END")     \
386         EM(afs_file_error_dir_small,            "DIR_SMALL")            \
387         EM(afs_file_error_dir_unmarked_ext,     "DIR_UNMARKED_EXT")     \
388         EM(afs_file_error_mntpt,                "MNTPT_READ_FAILED")    \
389         E_(afs_file_error_writeback_fail,       "WRITEBACK_FAILED")
390
391 #define afs_flock_types                                                 \
392         EM(F_RDLCK,                             "RDLCK")                \
393         EM(F_WRLCK,                             "WRLCK")                \
394         E_(F_UNLCK,                             "UNLCK")
395
396 #define afs_flock_states                                                \
397         EM(AFS_VNODE_LOCK_NONE,                 "NONE")                 \
398         EM(AFS_VNODE_LOCK_WAITING_FOR_CB,       "WAIT_FOR_CB")          \
399         EM(AFS_VNODE_LOCK_SETTING,              "SETTING")              \
400         EM(AFS_VNODE_LOCK_GRANTED,              "GRANTED")              \
401         EM(AFS_VNODE_LOCK_EXTENDING,            "EXTENDING")            \
402         EM(AFS_VNODE_LOCK_NEED_UNLOCK,          "NEED_UNLOCK")          \
403         EM(AFS_VNODE_LOCK_UNLOCKING,            "UNLOCKING")            \
404         E_(AFS_VNODE_LOCK_DELETED,              "DELETED")
405
406 #define afs_flock_events                                                \
407         EM(afs_flock_acquired,                  "Acquired")             \
408         EM(afs_flock_callback_break,            "Callback")             \
409         EM(afs_flock_defer_unlock,              "D-Unlock")             \
410         EM(afs_flock_extend_fail,               "Ext_Fail")             \
411         EM(afs_flock_fail_other,                "ErrOther")             \
412         EM(afs_flock_fail_perm,                 "ErrPerm ")             \
413         EM(afs_flock_no_lockers,                "NoLocker")             \
414         EM(afs_flock_release_fail,              "Rel_Fail")             \
415         EM(afs_flock_silly_delete,              "SillyDel")             \
416         EM(afs_flock_timestamp,                 "Timestmp")             \
417         EM(afs_flock_try_to_lock,               "TryToLck")             \
418         EM(afs_flock_vfs_lock,                  "VFSLock ")             \
419         EM(afs_flock_vfs_locking,               "VFSLking")             \
420         EM(afs_flock_waited,                    "Waited  ")             \
421         EM(afs_flock_waiting,                   "Waiting ")             \
422         EM(afs_flock_work_extending,            "Extendng")             \
423         EM(afs_flock_work_retry,                "Retry   ")             \
424         EM(afs_flock_work_unlocking,            "Unlcking")             \
425         E_(afs_flock_would_block,               "EWOULDBL")
426
427 #define afs_flock_operations                                            \
428         EM(afs_flock_op_copy_lock,              "COPY    ")             \
429         EM(afs_flock_op_flock,                  "->flock ")             \
430         EM(afs_flock_op_grant,                  "GRANT   ")             \
431         EM(afs_flock_op_lock,                   "->lock  ")             \
432         EM(afs_flock_op_release_lock,           "RELEASE ")             \
433         EM(afs_flock_op_return_ok,              "<-OK    ")             \
434         EM(afs_flock_op_return_edeadlk,         "<-EDEADL")             \
435         EM(afs_flock_op_return_eagain,          "<-EAGAIN")             \
436         EM(afs_flock_op_return_error,           "<-ERROR ")             \
437         EM(afs_flock_op_set_lock,               "SET     ")             \
438         EM(afs_flock_op_unlock,                 "UNLOCK  ")             \
439         E_(afs_flock_op_wake,                   "WAKE    ")
440
441 #define afs_cb_break_reasons                                            \
442         EM(afs_cb_break_no_break,               "no-break")             \
443         EM(afs_cb_break_for_callback,           "break-cb")             \
444         EM(afs_cb_break_for_creation_regress,   "creation-regress")     \
445         EM(afs_cb_break_for_deleted,            "break-del")            \
446         EM(afs_cb_break_for_s_reinit,           "s-reinit")             \
447         EM(afs_cb_break_for_unlink,             "break-unlink")         \
448         EM(afs_cb_break_for_update_regress,     "update-regress")       \
449         EM(afs_cb_break_for_volume_callback,    "break-v-cb")           \
450         EM(afs_cb_break_for_vos_release,        "break-vos-release")    \
451         E_(afs_cb_break_volume_excluded,        "vol-excluded")
452
453 #define afs_rotate_traces                                               \
454         EM(afs_rotate_trace_aborted,            "Abortd")               \
455         EM(afs_rotate_trace_busy_sleep,         "BsySlp")               \
456         EM(afs_rotate_trace_check_vol_status,   "VolStt")               \
457         EM(afs_rotate_trace_failed,             "Failed")               \
458         EM(afs_rotate_trace_iter,               "Iter  ")               \
459         EM(afs_rotate_trace_iterate_addr,       "ItAddr")               \
460         EM(afs_rotate_trace_next_server,        "NextSv")               \
461         EM(afs_rotate_trace_no_more_servers,    "NoMore")               \
462         EM(afs_rotate_trace_nomem,              "Nomem ")               \
463         EM(afs_rotate_trace_probe_error,        "PrbErr")               \
464         EM(afs_rotate_trace_probe_fileserver,   "PrbFsv")               \
465         EM(afs_rotate_trace_probe_none,         "PrbNon")               \
466         EM(afs_rotate_trace_probe_response,     "PrbRsp")               \
467         EM(afs_rotate_trace_probe_superseded,   "PrbSup")               \
468         EM(afs_rotate_trace_restart,            "Rstart")               \
469         EM(afs_rotate_trace_retry_server,       "RtrySv")               \
470         EM(afs_rotate_trace_selected_server,    "SlctSv")               \
471         EM(afs_rotate_trace_stale_lock,         "StlLck")               \
472         EM(afs_rotate_trace_start,              "Start ")               \
473         EM(afs_rotate_trace_stop,               "Stop  ")               \
474         E_(afs_rotate_trace_stopped,            "Stoppd")
475
476 /*
477  * Generate enums for tracing information.
478  */
479 #ifndef __AFS_GENERATE_TRACE_ENUMS_ONCE_ONLY
480 #define __AFS_GENERATE_TRACE_ENUMS_ONCE_ONLY
481
482 #undef EM
483 #undef E_
484 #define EM(a, b) a,
485 #define E_(a, b) a
486
487 enum afs_alist_trace            { afs_alist_traces } __mode(byte);
488 enum afs_call_trace             { afs_call_traces } __mode(byte);
489 enum afs_cb_break_reason        { afs_cb_break_reasons } __mode(byte);
490 enum afs_cell_trace             { afs_cell_traces } __mode(byte);
491 enum afs_edit_dir_op            { afs_edit_dir_ops } __mode(byte);
492 enum afs_edit_dir_reason        { afs_edit_dir_reasons } __mode(byte);
493 enum afs_eproto_cause           { afs_eproto_causes } __mode(byte);
494 enum afs_estate_trace           { afs_estate_traces } __mode(byte);
495 enum afs_file_error             { afs_file_errors } __mode(byte);
496 enum afs_flock_event            { afs_flock_events } __mode(byte);
497 enum afs_flock_operation        { afs_flock_operations } __mode(byte);
498 enum afs_io_error               { afs_io_errors } __mode(byte);
499 enum afs_rotate_trace           { afs_rotate_traces } __mode(byte);
500 enum afs_server_trace           { afs_server_traces } __mode(byte);
501 enum afs_volume_trace           { afs_volume_traces } __mode(byte);
502
503 #endif /* end __AFS_GENERATE_TRACE_ENUMS_ONCE_ONLY */
504
505 /*
506  * Export enum symbols via userspace.
507  */
508 #undef EM
509 #undef E_
510 #define EM(a, b) TRACE_DEFINE_ENUM(a);
511 #define E_(a, b) TRACE_DEFINE_ENUM(a);
512
513 afs_alist_traces;
514 afs_call_traces;
515 afs_cb_break_reasons;
516 afs_cell_traces;
517 afs_cm_operations;
518 afs_edit_dir_ops;
519 afs_edit_dir_reasons;
520 afs_eproto_causes;
521 afs_estate_traces;
522 afs_file_errors;
523 afs_flock_operations;
524 afs_flock_types;
525 afs_fs_operations;
526 afs_io_errors;
527 afs_rotate_traces;
528 afs_server_traces;
529 afs_vl_operations;
530 yfs_cm_operations;
531
532 /*
533  * Now redefine the EM() and E_() macros to map the enums to the strings that
534  * will be printed in the output.
535  */
536 #undef EM
537 #undef E_
538 #define EM(a, b)        { a, b },
539 #define E_(a, b)        { a, b }
540
541 TRACE_EVENT(afs_receive_data,
542             TP_PROTO(struct afs_call *call, struct iov_iter *iter,
543                      bool want_more, int ret),
544
545             TP_ARGS(call, iter, want_more, ret),
546
547             TP_STRUCT__entry(
548                     __field(loff_t,                     remain)
549                     __field(unsigned int,               call)
550                     __field(enum afs_call_state,        state)
551                     __field(unsigned short,             unmarshall)
552                     __field(bool,                       want_more)
553                     __field(int,                        ret)
554                              ),
555
556             TP_fast_assign(
557                     __entry->call       = call->debug_id;
558                     __entry->state      = call->state;
559                     __entry->unmarshall = call->unmarshall;
560                     __entry->remain     = iov_iter_count(iter);
561                     __entry->want_more  = want_more;
562                     __entry->ret        = ret;
563                            ),
564
565             TP_printk("c=%08x r=%llu u=%u w=%u s=%u ret=%d",
566                       __entry->call,
567                       __entry->remain,
568                       __entry->unmarshall,
569                       __entry->want_more,
570                       __entry->state,
571                       __entry->ret)
572             );
573
574 TRACE_EVENT(afs_notify_call,
575             TP_PROTO(struct rxrpc_call *rxcall, struct afs_call *call),
576
577             TP_ARGS(rxcall, call),
578
579             TP_STRUCT__entry(
580                     __field(unsigned int,               call)
581                     __field(enum afs_call_state,        state)
582                     __field(unsigned short,             unmarshall)
583                              ),
584
585             TP_fast_assign(
586                     __entry->call       = call->debug_id;
587                     __entry->state      = call->state;
588                     __entry->unmarshall = call->unmarshall;
589                            ),
590
591             TP_printk("c=%08x s=%u u=%u",
592                       __entry->call,
593                       __entry->state, __entry->unmarshall)
594             );
595
596 TRACE_EVENT(afs_cb_call,
597             TP_PROTO(struct afs_call *call),
598
599             TP_ARGS(call),
600
601             TP_STRUCT__entry(
602                     __field(unsigned int,               call)
603                     __field(u32,                        op)
604                     __field(u16,                        service_id)
605                              ),
606
607             TP_fast_assign(
608                     __entry->call       = call->debug_id;
609                     __entry->op         = call->operation_ID;
610                     __entry->service_id = call->service_id;
611                            ),
612
613             TP_printk("c=%08x %s",
614                       __entry->call,
615                       __entry->service_id == 2501 ?
616                       __print_symbolic(__entry->op, yfs_cm_operations) :
617                       __print_symbolic(__entry->op, afs_cm_operations))
618             );
619
620 TRACE_EVENT(afs_call,
621             TP_PROTO(unsigned int call_debug_id, enum afs_call_trace op,
622                      int ref, int outstanding, const void *where),
623
624             TP_ARGS(call_debug_id, op, ref, outstanding, where),
625
626             TP_STRUCT__entry(
627                     __field(unsigned int,               call)
628                     __field(int,                        op)
629                     __field(int,                        ref)
630                     __field(int,                        outstanding)
631                     __field(const void *,               where)
632                              ),
633
634             TP_fast_assign(
635                     __entry->call = call_debug_id;
636                     __entry->op = op;
637                     __entry->ref = ref;
638                     __entry->outstanding = outstanding;
639                     __entry->where = where;
640                            ),
641
642             TP_printk("c=%08x %s r=%d o=%d sp=%pSR",
643                       __entry->call,
644                       __print_symbolic(__entry->op, afs_call_traces),
645                       __entry->ref,
646                       __entry->outstanding,
647                       __entry->where)
648             );
649
650 TRACE_EVENT(afs_make_fs_call,
651             TP_PROTO(struct afs_call *call, const struct afs_fid *fid),
652
653             TP_ARGS(call, fid),
654
655             TP_STRUCT__entry(
656                     __field(unsigned int,               call)
657                     __field(enum afs_fs_operation,      op)
658                     __field_struct(struct afs_fid,      fid)
659                              ),
660
661             TP_fast_assign(
662                     __entry->call = call->debug_id;
663                     __entry->op = call->operation_ID;
664                     if (fid) {
665                             __entry->fid = *fid;
666                     } else {
667                             __entry->fid.vid = 0;
668                             __entry->fid.vnode = 0;
669                             __entry->fid.unique = 0;
670                     }
671                            ),
672
673             TP_printk("c=%08x %06llx:%06llx:%06x %s",
674                       __entry->call,
675                       __entry->fid.vid,
676                       __entry->fid.vnode,
677                       __entry->fid.unique,
678                       __print_symbolic(__entry->op, afs_fs_operations))
679             );
680
681 TRACE_EVENT(afs_make_fs_calli,
682             TP_PROTO(struct afs_call *call, const struct afs_fid *fid,
683                      unsigned int i),
684
685             TP_ARGS(call, fid, i),
686
687             TP_STRUCT__entry(
688                     __field(unsigned int,               call)
689                     __field(unsigned int,               i)
690                     __field(enum afs_fs_operation,      op)
691                     __field_struct(struct afs_fid,      fid)
692                              ),
693
694             TP_fast_assign(
695                     __entry->call = call->debug_id;
696                     __entry->i = i;
697                     __entry->op = call->operation_ID;
698                     if (fid) {
699                             __entry->fid = *fid;
700                     } else {
701                             __entry->fid.vid = 0;
702                             __entry->fid.vnode = 0;
703                             __entry->fid.unique = 0;
704                     }
705                            ),
706
707             TP_printk("c=%08x %06llx:%06llx:%06x %s i=%u",
708                       __entry->call,
709                       __entry->fid.vid,
710                       __entry->fid.vnode,
711                       __entry->fid.unique,
712                       __print_symbolic(__entry->op, afs_fs_operations),
713                       __entry->i)
714             );
715
716 TRACE_EVENT(afs_make_fs_call1,
717             TP_PROTO(struct afs_call *call, const struct afs_fid *fid,
718                      const struct qstr *name),
719
720             TP_ARGS(call, fid, name),
721
722             TP_STRUCT__entry(
723                     __field(unsigned int,               call)
724                     __field(enum afs_fs_operation,      op)
725                     __field_struct(struct afs_fid,      fid)
726                     __array(char,                       name, 24)
727                              ),
728
729             TP_fast_assign(
730                     unsigned int __len = min_t(unsigned int, name->len, 23);
731                     __entry->call = call->debug_id;
732                     __entry->op = call->operation_ID;
733                     if (fid) {
734                             __entry->fid = *fid;
735                     } else {
736                             __entry->fid.vid = 0;
737                             __entry->fid.vnode = 0;
738                             __entry->fid.unique = 0;
739                     }
740                     memcpy(__entry->name, name->name, __len);
741                     __entry->name[__len] = 0;
742                            ),
743
744             TP_printk("c=%08x %06llx:%06llx:%06x %s \"%s\"",
745                       __entry->call,
746                       __entry->fid.vid,
747                       __entry->fid.vnode,
748                       __entry->fid.unique,
749                       __print_symbolic(__entry->op, afs_fs_operations),
750                       __entry->name)
751             );
752
753 TRACE_EVENT(afs_make_fs_call2,
754             TP_PROTO(struct afs_call *call, const struct afs_fid *fid,
755                      const struct qstr *name, const struct qstr *name2),
756
757             TP_ARGS(call, fid, name, name2),
758
759             TP_STRUCT__entry(
760                     __field(unsigned int,               call)
761                     __field(enum afs_fs_operation,      op)
762                     __field_struct(struct afs_fid,      fid)
763                     __array(char,                       name, 24)
764                     __array(char,                       name2, 24)
765                              ),
766
767             TP_fast_assign(
768                     unsigned int __len = min_t(unsigned int, name->len, 23);
769                     unsigned int __len2 = min_t(unsigned int, name2->len, 23);
770                     __entry->call = call->debug_id;
771                     __entry->op = call->operation_ID;
772                     if (fid) {
773                             __entry->fid = *fid;
774                     } else {
775                             __entry->fid.vid = 0;
776                             __entry->fid.vnode = 0;
777                             __entry->fid.unique = 0;
778                     }
779                     memcpy(__entry->name, name->name, __len);
780                     __entry->name[__len] = 0;
781                     memcpy(__entry->name2, name2->name, __len2);
782                     __entry->name2[__len2] = 0;
783                            ),
784
785             TP_printk("c=%08x %06llx:%06llx:%06x %s \"%s\" \"%s\"",
786                       __entry->call,
787                       __entry->fid.vid,
788                       __entry->fid.vnode,
789                       __entry->fid.unique,
790                       __print_symbolic(__entry->op, afs_fs_operations),
791                       __entry->name,
792                       __entry->name2)
793             );
794
795 TRACE_EVENT(afs_make_vl_call,
796             TP_PROTO(struct afs_call *call),
797
798             TP_ARGS(call),
799
800             TP_STRUCT__entry(
801                     __field(unsigned int,               call)
802                     __field(enum afs_vl_operation,      op)
803                              ),
804
805             TP_fast_assign(
806                     __entry->call = call->debug_id;
807                     __entry->op = call->operation_ID;
808                            ),
809
810             TP_printk("c=%08x %s",
811                       __entry->call,
812                       __print_symbolic(__entry->op, afs_vl_operations))
813             );
814
815 TRACE_EVENT(afs_call_done,
816             TP_PROTO(struct afs_call *call),
817
818             TP_ARGS(call),
819
820             TP_STRUCT__entry(
821                     __field(unsigned int,               call)
822                     __field(struct rxrpc_call *,        rx_call)
823                     __field(int,                        ret)
824                     __field(u32,                        abort_code)
825                              ),
826
827             TP_fast_assign(
828                     __entry->call = call->debug_id;
829                     __entry->rx_call = call->rxcall;
830                     __entry->ret = call->error;
831                     __entry->abort_code = call->abort_code;
832                            ),
833
834             TP_printk("   c=%08x ret=%d ab=%d [%p]",
835                       __entry->call,
836                       __entry->ret,
837                       __entry->abort_code,
838                       __entry->rx_call)
839             );
840
841 TRACE_EVENT(afs_send_data,
842             TP_PROTO(struct afs_call *call, struct msghdr *msg),
843
844             TP_ARGS(call, msg),
845
846             TP_STRUCT__entry(
847                     __field(unsigned int,               call)
848                     __field(unsigned int,               flags)
849                     __field(loff_t,                     offset)
850                     __field(loff_t,                     count)
851                              ),
852
853             TP_fast_assign(
854                     __entry->call = call->debug_id;
855                     __entry->flags = msg->msg_flags;
856                     __entry->offset = msg->msg_iter.xarray_start + msg->msg_iter.iov_offset;
857                     __entry->count = iov_iter_count(&msg->msg_iter);
858                            ),
859
860             TP_printk(" c=%08x o=%llx n=%llx f=%x",
861                       __entry->call, __entry->offset, __entry->count,
862                       __entry->flags)
863             );
864
865 TRACE_EVENT(afs_sent_data,
866             TP_PROTO(struct afs_call *call, struct msghdr *msg, int ret),
867
868             TP_ARGS(call, msg, ret),
869
870             TP_STRUCT__entry(
871                     __field(unsigned int,               call)
872                     __field(int,                        ret)
873                     __field(loff_t,                     offset)
874                     __field(loff_t,                     count)
875                              ),
876
877             TP_fast_assign(
878                     __entry->call = call->debug_id;
879                     __entry->ret = ret;
880                     __entry->offset = msg->msg_iter.xarray_start + msg->msg_iter.iov_offset;
881                     __entry->count = iov_iter_count(&msg->msg_iter);
882                            ),
883
884             TP_printk(" c=%08x o=%llx n=%llx r=%x",
885                       __entry->call, __entry->offset, __entry->count,
886                       __entry->ret)
887             );
888
889 TRACE_EVENT(afs_dir_check_failed,
890             TP_PROTO(struct afs_vnode *vnode, loff_t off, loff_t i_size),
891
892             TP_ARGS(vnode, off, i_size),
893
894             TP_STRUCT__entry(
895                     __field(struct afs_vnode *,         vnode)
896                     __field(loff_t,                     off)
897                     __field(loff_t,                     i_size)
898                              ),
899
900             TP_fast_assign(
901                     __entry->vnode = vnode;
902                     __entry->off = off;
903                     __entry->i_size = i_size;
904                            ),
905
906             TP_printk("vn=%p %llx/%llx",
907                       __entry->vnode, __entry->off, __entry->i_size)
908             );
909
910 TRACE_EVENT(afs_call_state,
911             TP_PROTO(struct afs_call *call,
912                      enum afs_call_state from,
913                      enum afs_call_state to,
914                      int ret, u32 remote_abort),
915
916             TP_ARGS(call, from, to, ret, remote_abort),
917
918             TP_STRUCT__entry(
919                     __field(unsigned int,               call)
920                     __field(enum afs_call_state,        from)
921                     __field(enum afs_call_state,        to)
922                     __field(int,                        ret)
923                     __field(u32,                        abort)
924                              ),
925
926             TP_fast_assign(
927                     __entry->call = call->debug_id;
928                     __entry->from = from;
929                     __entry->to = to;
930                     __entry->ret = ret;
931                     __entry->abort = remote_abort;
932                            ),
933
934             TP_printk("c=%08x %u->%u r=%d ab=%d",
935                       __entry->call,
936                       __entry->from, __entry->to,
937                       __entry->ret, __entry->abort)
938             );
939
940 TRACE_EVENT(afs_lookup,
941             TP_PROTO(struct afs_vnode *dvnode, const struct qstr *name,
942                      struct afs_fid *fid),
943
944             TP_ARGS(dvnode, name, fid),
945
946             TP_STRUCT__entry(
947                     __field_struct(struct afs_fid,      dfid)
948                     __field_struct(struct afs_fid,      fid)
949                     __array(char,                       name, 24)
950                              ),
951
952             TP_fast_assign(
953                     int __len = min_t(int, name->len, 23);
954                     __entry->dfid = dvnode->fid;
955                     __entry->fid = *fid;
956                     memcpy(__entry->name, name->name, __len);
957                     __entry->name[__len] = 0;
958                            ),
959
960             TP_printk("d=%llx:%llx:%x \"%s\" f=%llx:%x",
961                       __entry->dfid.vid, __entry->dfid.vnode, __entry->dfid.unique,
962                       __entry->name,
963                       __entry->fid.vnode, __entry->fid.unique)
964             );
965
966 TRACE_EVENT(afs_edit_dir,
967             TP_PROTO(struct afs_vnode *dvnode,
968                      enum afs_edit_dir_reason why,
969                      enum afs_edit_dir_op op,
970                      unsigned int block,
971                      unsigned int slot,
972                      unsigned int f_vnode,
973                      unsigned int f_unique,
974                      const char *name),
975
976             TP_ARGS(dvnode, why, op, block, slot, f_vnode, f_unique, name),
977
978             TP_STRUCT__entry(
979                     __field(unsigned int,               vnode)
980                     __field(unsigned int,               unique)
981                     __field(enum afs_edit_dir_reason,   why)
982                     __field(enum afs_edit_dir_op,       op)
983                     __field(unsigned int,               block)
984                     __field(unsigned short,             slot)
985                     __field(unsigned int,               f_vnode)
986                     __field(unsigned int,               f_unique)
987                     __array(char,                       name, 24)
988                              ),
989
990             TP_fast_assign(
991                     int __len = strlen(name);
992                     __len = min(__len, 23);
993                     __entry->vnode      = dvnode->fid.vnode;
994                     __entry->unique     = dvnode->fid.unique;
995                     __entry->why        = why;
996                     __entry->op         = op;
997                     __entry->block      = block;
998                     __entry->slot       = slot;
999                     __entry->f_vnode    = f_vnode;
1000                     __entry->f_unique   = f_unique;
1001                     memcpy(__entry->name, name, __len);
1002                     __entry->name[__len] = 0;
1003                            ),
1004
1005             TP_printk("d=%x:%x %s %s %u[%u] f=%x:%x \"%s\"",
1006                       __entry->vnode, __entry->unique,
1007                       __print_symbolic(__entry->why, afs_edit_dir_reasons),
1008                       __print_symbolic(__entry->op, afs_edit_dir_ops),
1009                       __entry->block, __entry->slot,
1010                       __entry->f_vnode, __entry->f_unique,
1011                       __entry->name)
1012             );
1013
1014 TRACE_EVENT(afs_protocol_error,
1015             TP_PROTO(struct afs_call *call, enum afs_eproto_cause cause),
1016
1017             TP_ARGS(call, cause),
1018
1019             TP_STRUCT__entry(
1020                     __field(unsigned int,               call)
1021                     __field(enum afs_eproto_cause,      cause)
1022                              ),
1023
1024             TP_fast_assign(
1025                     __entry->call = call ? call->debug_id : 0;
1026                     __entry->cause = cause;
1027                            ),
1028
1029             TP_printk("c=%08x %s",
1030                       __entry->call,
1031                       __print_symbolic(__entry->cause, afs_eproto_causes))
1032             );
1033
1034 TRACE_EVENT(afs_io_error,
1035             TP_PROTO(unsigned int call, int error, enum afs_io_error where),
1036
1037             TP_ARGS(call, error, where),
1038
1039             TP_STRUCT__entry(
1040                     __field(unsigned int,       call)
1041                     __field(int,                error)
1042                     __field(enum afs_io_error,  where)
1043                              ),
1044
1045             TP_fast_assign(
1046                     __entry->call = call;
1047                     __entry->error = error;
1048                     __entry->where = where;
1049                            ),
1050
1051             TP_printk("c=%08x r=%d %s",
1052                       __entry->call, __entry->error,
1053                       __print_symbolic(__entry->where, afs_io_errors))
1054             );
1055
1056 TRACE_EVENT(afs_file_error,
1057             TP_PROTO(struct afs_vnode *vnode, int error, enum afs_file_error where),
1058
1059             TP_ARGS(vnode, error, where),
1060
1061             TP_STRUCT__entry(
1062                     __field_struct(struct afs_fid,      fid)
1063                     __field(int,                        error)
1064                     __field(enum afs_file_error,        where)
1065                              ),
1066
1067             TP_fast_assign(
1068                     __entry->fid = vnode->fid;
1069                     __entry->error = error;
1070                     __entry->where = where;
1071                            ),
1072
1073             TP_printk("%llx:%llx:%x r=%d %s",
1074                       __entry->fid.vid, __entry->fid.vnode, __entry->fid.unique,
1075                       __entry->error,
1076                       __print_symbolic(__entry->where, afs_file_errors))
1077             );
1078
1079 TRACE_EVENT(afs_bulkstat_error,
1080             TP_PROTO(struct afs_operation *op, struct afs_fid *fid, unsigned int index, s32 abort),
1081
1082             TP_ARGS(op, fid, index, abort),
1083
1084             TP_STRUCT__entry(
1085                     __field_struct(struct afs_fid,      fid)
1086                     __field(unsigned int,               op)
1087                     __field(unsigned int,               index)
1088                     __field(s32,                        abort)
1089                              ),
1090
1091             TP_fast_assign(
1092                     __entry->op = op->debug_id;
1093                     __entry->fid = *fid;
1094                     __entry->index = index;
1095                     __entry->abort = abort;
1096                            ),
1097
1098             TP_printk("OP=%08x[%02x] %llx:%llx:%x a=%d",
1099                       __entry->op, __entry->index,
1100                       __entry->fid.vid, __entry->fid.vnode, __entry->fid.unique,
1101                       __entry->abort)
1102             );
1103
1104 TRACE_EVENT(afs_cm_no_server,
1105             TP_PROTO(struct afs_call *call, struct sockaddr_rxrpc *srx),
1106
1107             TP_ARGS(call, srx),
1108
1109             TP_STRUCT__entry(
1110                     __field(unsigned int,                       call)
1111                     __field(unsigned int,                       op_id)
1112                     __field_struct(struct sockaddr_rxrpc,       srx)
1113                              ),
1114
1115             TP_fast_assign(
1116                     __entry->call = call->debug_id;
1117                     __entry->op_id = call->operation_ID;
1118                     memcpy(&__entry->srx, srx, sizeof(__entry->srx));
1119                            ),
1120
1121             TP_printk("c=%08x op=%u %pISpc",
1122                       __entry->call, __entry->op_id, &__entry->srx.transport)
1123             );
1124
1125 TRACE_EVENT(afs_cm_no_server_u,
1126             TP_PROTO(struct afs_call *call, const uuid_t *uuid),
1127
1128             TP_ARGS(call, uuid),
1129
1130             TP_STRUCT__entry(
1131                     __field(unsigned int,                       call)
1132                     __field(unsigned int,                       op_id)
1133                     __field_struct(uuid_t,                      uuid)
1134                              ),
1135
1136             TP_fast_assign(
1137                     __entry->call = call->debug_id;
1138                     __entry->op_id = call->operation_ID;
1139                     memcpy(&__entry->uuid, uuid, sizeof(__entry->uuid));
1140                            ),
1141
1142             TP_printk("c=%08x op=%u %pU",
1143                       __entry->call, __entry->op_id, &__entry->uuid)
1144             );
1145
1146 TRACE_EVENT(afs_flock_ev,
1147             TP_PROTO(struct afs_vnode *vnode, struct file_lock *fl,
1148                      enum afs_flock_event event, int error),
1149
1150             TP_ARGS(vnode, fl, event, error),
1151
1152             TP_STRUCT__entry(
1153                     __field_struct(struct afs_fid,      fid)
1154                     __field(enum afs_flock_event,       event)
1155                     __field(enum afs_lock_state,        state)
1156                     __field(int,                        error)
1157                     __field(unsigned int,               debug_id)
1158                              ),
1159
1160             TP_fast_assign(
1161                     __entry->fid = vnode->fid;
1162                     __entry->event = event;
1163                     __entry->state = vnode->lock_state;
1164                     __entry->error = error;
1165                     __entry->debug_id = fl ? fl->fl_u.afs.debug_id : 0;
1166                            ),
1167
1168             TP_printk("%llx:%llx:%x %04x %s s=%s e=%d",
1169                       __entry->fid.vid, __entry->fid.vnode, __entry->fid.unique,
1170                       __entry->debug_id,
1171                       __print_symbolic(__entry->event, afs_flock_events),
1172                       __print_symbolic(__entry->state, afs_flock_states),
1173                       __entry->error)
1174             );
1175
1176 TRACE_EVENT(afs_flock_op,
1177             TP_PROTO(struct afs_vnode *vnode, struct file_lock *fl,
1178                      enum afs_flock_operation op),
1179
1180             TP_ARGS(vnode, fl, op),
1181
1182             TP_STRUCT__entry(
1183                     __field_struct(struct afs_fid,      fid)
1184                     __field(loff_t,                     from)
1185                     __field(loff_t,                     len)
1186                     __field(enum afs_flock_operation,   op)
1187                     __field(unsigned char,              type)
1188                     __field(unsigned int,               flags)
1189                     __field(unsigned int,               debug_id)
1190                              ),
1191
1192             TP_fast_assign(
1193                     __entry->fid = vnode->fid;
1194                     __entry->from = fl->fl_start;
1195                     __entry->len = fl->fl_end - fl->fl_start + 1;
1196                     __entry->op = op;
1197                     __entry->type = fl->c.flc_type;
1198                     __entry->flags = fl->c.flc_flags;
1199                     __entry->debug_id = fl->fl_u.afs.debug_id;
1200                            ),
1201
1202             TP_printk("%llx:%llx:%x %04x %s t=%s R=%llx/%llx f=%x",
1203                       __entry->fid.vid, __entry->fid.vnode, __entry->fid.unique,
1204                       __entry->debug_id,
1205                       __print_symbolic(__entry->op, afs_flock_operations),
1206                       __print_symbolic(__entry->type, afs_flock_types),
1207                       __entry->from, __entry->len, __entry->flags)
1208             );
1209
1210 TRACE_EVENT(afs_reload_dir,
1211             TP_PROTO(struct afs_vnode *vnode),
1212
1213             TP_ARGS(vnode),
1214
1215             TP_STRUCT__entry(
1216                     __field_struct(struct afs_fid,      fid)
1217                              ),
1218
1219             TP_fast_assign(
1220                     __entry->fid = vnode->fid;
1221                            ),
1222
1223             TP_printk("%llx:%llx:%x",
1224                       __entry->fid.vid, __entry->fid.vnode, __entry->fid.unique)
1225             );
1226
1227 TRACE_EVENT(afs_silly_rename,
1228             TP_PROTO(struct afs_vnode *vnode, bool done),
1229
1230             TP_ARGS(vnode, done),
1231
1232             TP_STRUCT__entry(
1233                     __field_struct(struct afs_fid,      fid)
1234                     __field(bool,                       done)
1235                              ),
1236
1237             TP_fast_assign(
1238                     __entry->fid = vnode->fid;
1239                     __entry->done = done;
1240                            ),
1241
1242             TP_printk("%llx:%llx:%x done=%u",
1243                       __entry->fid.vid, __entry->fid.vnode, __entry->fid.unique,
1244                       __entry->done)
1245             );
1246
1247 TRACE_EVENT(afs_get_tree,
1248             TP_PROTO(struct afs_cell *cell, struct afs_volume *volume),
1249
1250             TP_ARGS(cell, volume),
1251
1252             TP_STRUCT__entry(
1253                     __field(u64,                        vid)
1254                     __array(char,                       cell, 24)
1255                     __array(char,                       volume, 24)
1256                              ),
1257
1258             TP_fast_assign(
1259                     int __len;
1260                     __entry->vid = volume->vid;
1261                     __len = min_t(int, cell->name_len, 23);
1262                     memcpy(__entry->cell, cell->name, __len);
1263                     __entry->cell[__len] = 0;
1264                     __len = min_t(int, volume->name_len, 23);
1265                     memcpy(__entry->volume, volume->name, __len);
1266                     __entry->volume[__len] = 0;
1267                            ),
1268
1269             TP_printk("--- MOUNT %s:%s %llx",
1270                       __entry->cell, __entry->volume, __entry->vid)
1271             );
1272
1273 TRACE_EVENT(afs_cb_v_break,
1274             TP_PROTO(afs_volid_t vid, unsigned int cb_v_break,
1275                      enum afs_cb_break_reason reason),
1276
1277             TP_ARGS(vid, cb_v_break, reason),
1278
1279             TP_STRUCT__entry(
1280                     __field(afs_volid_t,                vid)
1281                     __field(unsigned int,               cb_v_break)
1282                     __field(enum afs_cb_break_reason,   reason)
1283                              ),
1284
1285             TP_fast_assign(
1286                     __entry->vid        = vid;
1287                     __entry->cb_v_break = cb_v_break;
1288                     __entry->reason     = reason;
1289                            ),
1290
1291             TP_printk("%llx vb=%x %s",
1292                       __entry->vid,
1293                       __entry->cb_v_break,
1294                       __print_symbolic(__entry->reason, afs_cb_break_reasons))
1295             );
1296
1297 TRACE_EVENT(afs_cb_break,
1298             TP_PROTO(struct afs_fid *fid, unsigned int cb_break,
1299                      enum afs_cb_break_reason reason, bool skipped),
1300
1301             TP_ARGS(fid, cb_break, reason, skipped),
1302
1303             TP_STRUCT__entry(
1304                     __field_struct(struct afs_fid,      fid)
1305                     __field(unsigned int,               cb_break)
1306                     __field(enum afs_cb_break_reason,   reason)
1307                     __field(bool,                       skipped)
1308                              ),
1309
1310             TP_fast_assign(
1311                     __entry->fid        = *fid;
1312                     __entry->cb_break   = cb_break;
1313                     __entry->reason     = reason;
1314                     __entry->skipped    = skipped;
1315                            ),
1316
1317             TP_printk("%llx:%llx:%x b=%x s=%u %s",
1318                       __entry->fid.vid, __entry->fid.vnode, __entry->fid.unique,
1319                       __entry->cb_break,
1320                       __entry->skipped,
1321                       __print_symbolic(__entry->reason, afs_cb_break_reasons))
1322             );
1323
1324 TRACE_EVENT(afs_cb_miss,
1325             TP_PROTO(struct afs_fid *fid, enum afs_cb_break_reason reason),
1326
1327             TP_ARGS(fid, reason),
1328
1329             TP_STRUCT__entry(
1330                     __field_struct(struct afs_fid,      fid)
1331                     __field(enum afs_cb_break_reason,   reason)
1332                              ),
1333
1334             TP_fast_assign(
1335                     __entry->fid        = *fid;
1336                     __entry->reason     = reason;
1337                            ),
1338
1339             TP_printk(" %llx:%llx:%x %s",
1340                       __entry->fid.vid, __entry->fid.vnode, __entry->fid.unique,
1341                       __print_symbolic(__entry->reason, afs_cb_break_reasons))
1342             );
1343
1344 TRACE_EVENT(afs_server,
1345             TP_PROTO(unsigned int server_debug_id, int ref, int active,
1346                      enum afs_server_trace reason),
1347
1348             TP_ARGS(server_debug_id, ref, active, reason),
1349
1350             TP_STRUCT__entry(
1351                     __field(unsigned int,               server)
1352                     __field(int,                        ref)
1353                     __field(int,                        active)
1354                     __field(int,                        reason)
1355                              ),
1356
1357             TP_fast_assign(
1358                     __entry->server = server_debug_id;
1359                     __entry->ref = ref;
1360                     __entry->active = active;
1361                     __entry->reason = reason;
1362                            ),
1363
1364             TP_printk("s=%08x %s u=%d a=%d",
1365                       __entry->server,
1366                       __print_symbolic(__entry->reason, afs_server_traces),
1367                       __entry->ref,
1368                       __entry->active)
1369             );
1370
1371 TRACE_EVENT(afs_volume,
1372             TP_PROTO(afs_volid_t vid, int ref, enum afs_volume_trace reason),
1373
1374             TP_ARGS(vid, ref, reason),
1375
1376             TP_STRUCT__entry(
1377                     __field(afs_volid_t,                vid)
1378                     __field(int,                        ref)
1379                     __field(enum afs_volume_trace,      reason)
1380                              ),
1381
1382             TP_fast_assign(
1383                     __entry->vid = vid;
1384                     __entry->ref = ref;
1385                     __entry->reason = reason;
1386                            ),
1387
1388             TP_printk("V=%llx %s ur=%d",
1389                       __entry->vid,
1390                       __print_symbolic(__entry->reason, afs_volume_traces),
1391                       __entry->ref)
1392             );
1393
1394 TRACE_EVENT(afs_cell,
1395             TP_PROTO(unsigned int cell_debug_id, int ref, int active,
1396                      enum afs_cell_trace reason),
1397
1398             TP_ARGS(cell_debug_id, ref, active, reason),
1399
1400             TP_STRUCT__entry(
1401                     __field(unsigned int,               cell)
1402                     __field(int,                        ref)
1403                     __field(int,                        active)
1404                     __field(int,                        reason)
1405                              ),
1406
1407             TP_fast_assign(
1408                     __entry->cell = cell_debug_id;
1409                     __entry->ref = ref;
1410                     __entry->active = active;
1411                     __entry->reason = reason;
1412                            ),
1413
1414             TP_printk("L=%08x %s r=%d a=%d",
1415                       __entry->cell,
1416                       __print_symbolic(__entry->reason, afs_cell_traces),
1417                       __entry->ref,
1418                       __entry->active)
1419             );
1420
1421 TRACE_EVENT(afs_alist,
1422             TP_PROTO(unsigned int alist_debug_id, int ref, enum afs_alist_trace reason),
1423
1424             TP_ARGS(alist_debug_id, ref, reason),
1425
1426             TP_STRUCT__entry(
1427                     __field(unsigned int,               alist)
1428                     __field(int,                        ref)
1429                     __field(int,                        active)
1430                     __field(int,                        reason)
1431                              ),
1432
1433             TP_fast_assign(
1434                     __entry->alist = alist_debug_id;
1435                     __entry->ref = ref;
1436                     __entry->reason = reason;
1437                            ),
1438
1439             TP_printk("AL=%08x %s r=%d",
1440                       __entry->alist,
1441                       __print_symbolic(__entry->reason, afs_alist_traces),
1442                       __entry->ref)
1443             );
1444
1445 TRACE_EVENT(afs_estate,
1446             TP_PROTO(unsigned int server_debug_id, unsigned int estate_debug_id,
1447                      int ref, enum afs_estate_trace reason),
1448
1449             TP_ARGS(server_debug_id, estate_debug_id, ref, reason),
1450
1451             TP_STRUCT__entry(
1452                     __field(unsigned int,               server)
1453                     __field(unsigned int,               estate)
1454                     __field(int,                        ref)
1455                     __field(int,                        active)
1456                     __field(int,                        reason)
1457                              ),
1458
1459             TP_fast_assign(
1460                     __entry->server = server_debug_id;
1461                     __entry->estate = estate_debug_id;
1462                     __entry->ref = ref;
1463                     __entry->reason = reason;
1464                            ),
1465
1466             TP_printk("ES=%08x[%x] %s r=%d",
1467                       __entry->server,
1468                       __entry->estate,
1469                       __print_symbolic(__entry->reason, afs_estate_traces),
1470                       __entry->ref)
1471             );
1472
1473 TRACE_EVENT(afs_fs_probe,
1474             TP_PROTO(struct afs_server *server, bool tx, struct afs_endpoint_state *estate,
1475                      unsigned int addr_index, int error, s32 abort_code, unsigned int rtt_us),
1476
1477             TP_ARGS(server, tx, estate, addr_index, error, abort_code, rtt_us),
1478
1479             TP_STRUCT__entry(
1480                     __field(unsigned int,               server)
1481                     __field(unsigned int,               estate)
1482                     __field(bool,                       tx)
1483                     __field(u16,                        addr_index)
1484                     __field(short,                      error)
1485                     __field(s32,                        abort_code)
1486                     __field(unsigned int,               rtt_us)
1487                     __field_struct(struct sockaddr_rxrpc, srx)
1488                              ),
1489
1490             TP_fast_assign(
1491                     struct afs_addr_list *alist = estate->addresses;
1492                     __entry->server = server->debug_id;
1493                     __entry->estate = estate->probe_seq;
1494                     __entry->tx = tx;
1495                     __entry->addr_index = addr_index;
1496                     __entry->error = error;
1497                     __entry->abort_code = abort_code;
1498                     __entry->rtt_us = rtt_us;
1499                     memcpy(&__entry->srx, rxrpc_kernel_remote_srx(alist->addrs[addr_index].peer),
1500                            sizeof(__entry->srx));
1501                            ),
1502
1503             TP_printk("s=%08x %s pq=%x ax=%u e=%d ac=%d rtt=%d %pISpc",
1504                       __entry->server, __entry->tx ? "tx" : "rx", __entry->estate,
1505                       __entry->addr_index, __entry->error, __entry->abort_code, __entry->rtt_us,
1506                       &__entry->srx.transport)
1507             );
1508
1509 TRACE_EVENT(afs_vl_probe,
1510             TP_PROTO(struct afs_vlserver *server, bool tx, struct afs_addr_list *alist,
1511                      unsigned int addr_index, int error, s32 abort_code, unsigned int rtt_us),
1512
1513             TP_ARGS(server, tx, alist, addr_index, error, abort_code, rtt_us),
1514
1515             TP_STRUCT__entry(
1516                     __field(unsigned int,               server)
1517                     __field(bool,                       tx)
1518                     __field(unsigned short,             flags)
1519                     __field(u16,                        addr_index)
1520                     __field(short,                      error)
1521                     __field(s32,                        abort_code)
1522                     __field(unsigned int,               rtt_us)
1523                     __field_struct(struct sockaddr_rxrpc, srx)
1524                              ),
1525
1526             TP_fast_assign(
1527                     __entry->server = server->debug_id;
1528                     __entry->tx = tx;
1529                     __entry->addr_index = addr_index;
1530                     __entry->error = error;
1531                     __entry->abort_code = abort_code;
1532                     __entry->rtt_us = rtt_us;
1533                     memcpy(&__entry->srx, rxrpc_kernel_remote_srx(alist->addrs[addr_index].peer),
1534                            sizeof(__entry->srx));
1535                            ),
1536
1537             TP_printk("vl=%08x %s ax=%u e=%d ac=%d rtt=%d %pISpc",
1538                       __entry->server, __entry->tx ? "tx" : "rx", __entry->addr_index,
1539                       __entry->error, __entry->abort_code, __entry->rtt_us,
1540                       &__entry->srx.transport)
1541             );
1542
1543 TRACE_EVENT(afs_rotate,
1544             TP_PROTO(struct afs_operation *op, enum afs_rotate_trace reason, unsigned int extra),
1545
1546             TP_ARGS(op, reason, extra),
1547
1548             TP_STRUCT__entry(
1549                     __field(unsigned int,               op)
1550                     __field(unsigned int,               flags)
1551                     __field(unsigned int,               extra)
1552                     __field(unsigned short,             iteration)
1553                     __field(short,                      server_index)
1554                     __field(short,                      addr_index)
1555                     __field(enum afs_rotate_trace,      reason)
1556                              ),
1557
1558             TP_fast_assign(
1559                     __entry->op = op->debug_id;
1560                     __entry->flags = op->flags;
1561                     __entry->iteration = op->nr_iterations;
1562                     __entry->server_index = op->server_index;
1563                     __entry->addr_index = op->addr_index;
1564                     __entry->reason = reason;
1565                     __entry->extra = extra;
1566                            ),
1567
1568             TP_printk("OP=%08x it=%02x %s fl=%x sx=%d ax=%d ext=%d",
1569                       __entry->op,
1570                       __entry->iteration,
1571                       __print_symbolic(__entry->reason, afs_rotate_traces),
1572                       __entry->flags,
1573                       __entry->server_index,
1574                       __entry->addr_index,
1575                       __entry->extra)
1576             );
1577
1578 TRACE_EVENT(afs_make_call,
1579             TP_PROTO(struct afs_call *call),
1580
1581             TP_ARGS(call),
1582
1583             TP_STRUCT__entry(
1584                     __field(unsigned int,               call)
1585                     __field(bool,                       is_vl)
1586                     __field(enum afs_fs_operation,      op)
1587                     __field_struct(struct afs_fid,      fid)
1588                     __field_struct(struct sockaddr_rxrpc, srx)
1589                              ),
1590
1591             TP_fast_assign(
1592                     __entry->call = call->debug_id;
1593                     __entry->op = call->operation_ID;
1594                     __entry->fid = call->fid;
1595                     memcpy(&__entry->srx, rxrpc_kernel_remote_srx(call->peer),
1596                            sizeof(__entry->srx));
1597                     __entry->srx.srx_service = call->service_id;
1598                     __entry->is_vl = (__entry->srx.srx_service == VL_SERVICE ||
1599                                       __entry->srx.srx_service == YFS_VL_SERVICE);
1600                            ),
1601
1602             TP_printk("c=%08x %pISpc+%u %s %llx:%llx:%x",
1603                       __entry->call,
1604                       &__entry->srx.transport,
1605                       __entry->srx.srx_service,
1606                       __entry->is_vl ?
1607                       __print_symbolic(__entry->op, afs_vl_operations) :
1608                       __print_symbolic(__entry->op, afs_fs_operations),
1609                       __entry->fid.vid,
1610                       __entry->fid.vnode,
1611                       __entry->fid.unique)
1612             );
1613
1614 #endif /* _TRACE_AFS_H */
1615
1616 /* This part must be outside protection */
1617 #include <trace/define_trace.h>
This page took 0.127518 seconds and 4 git commands to generate.