mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 19:08:57 +09:00
smb3: add dynamic trace point for ioctls
[ Upstream commit 073dd87c8e1ee55ca163956f0c71249dc28aac51 ]
It can be helpful in debugging to know which ioctls are called to better
correlate them with smb3 fsctls (and opens). Add a dynamic trace point
to trace ioctls into cifs.ko
Here is sample output:
TASK-PID CPU# ||||| TIMESTAMP FUNCTION
| | | ||||| | |
new-inotify-ioc-90418 [001] ..... 142157.397024: smb3_ioctl: xid=18 fid=0x0 ioctl cmd=0xc009cf0b
new-inotify-ioc-90457 [007] ..... 142217.943569: smb3_ioctl: xid=22 fid=0x389bf5b6 ioctl cmd=0xc009cf0b
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
c057a809e1
commit
25f3604fcd
@@ -349,6 +349,11 @@ long cifs_ioctl(struct file *filep, unsigned int command, unsigned long arg)
|
||||
xid = get_xid();
|
||||
|
||||
cifs_dbg(FYI, "cifs ioctl 0x%x\n", command);
|
||||
if (pSMBFile == NULL)
|
||||
trace_smb3_ioctl(xid, 0, command);
|
||||
else
|
||||
trace_smb3_ioctl(xid, pSMBFile->fid.persistent_fid, command);
|
||||
|
||||
switch (command) {
|
||||
case FS_IOC_GETFLAGS:
|
||||
if (pSMBFile == NULL)
|
||||
|
||||
@@ -1032,6 +1032,38 @@ DEFINE_EVENT(smb3_ses_class, smb3_##name, \
|
||||
|
||||
DEFINE_SMB3_SES_EVENT(ses_not_found);
|
||||
|
||||
DECLARE_EVENT_CLASS(smb3_ioctl_class,
|
||||
TP_PROTO(unsigned int xid,
|
||||
__u64 fid,
|
||||
unsigned int command),
|
||||
TP_ARGS(xid, fid, command),
|
||||
TP_STRUCT__entry(
|
||||
__field(unsigned int, xid)
|
||||
__field(__u64, fid)
|
||||
__field(unsigned int, command)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->xid = xid;
|
||||
__entry->fid = fid;
|
||||
__entry->command = command;
|
||||
),
|
||||
TP_printk("xid=%u fid=0x%llx ioctl cmd=0x%x",
|
||||
__entry->xid, __entry->fid, __entry->command)
|
||||
)
|
||||
|
||||
#define DEFINE_SMB3_IOCTL_EVENT(name) \
|
||||
DEFINE_EVENT(smb3_ioctl_class, smb3_##name, \
|
||||
TP_PROTO(unsigned int xid, \
|
||||
__u64 fid, \
|
||||
unsigned int command), \
|
||||
TP_ARGS(xid, fid, command))
|
||||
|
||||
DEFINE_SMB3_IOCTL_EVENT(ioctl);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DECLARE_EVENT_CLASS(smb3_credit_class,
|
||||
TP_PROTO(__u64 currmid,
|
||||
__u64 conn_id,
|
||||
|
||||
Reference in New Issue
Block a user