smb3: add trace event for mknod
authorSteve French <stfrench@microsoft.com>
Sun, 24 Mar 2024 05:01:02 +0000 (00:01 -0500)
committerSteve French <stfrench@microsoft.com>
Tue, 26 Mar 2024 19:56:36 +0000 (14:56 -0500)
Add trace points to help debug mknod and mkfifo:

   smb3_mknod_done
   smb3_mknod_enter
   smb3_mknod_err

Example output:

      TASK-PID     CPU#  |||||  TIMESTAMP  FUNCTION
         | |         |   |||||     |         |
    mkfifo-6163    [003] .....   960.425558: smb3_mknod_enter: xid=12 sid=0xb55130f6 tid=0x46e6241c path=\fifo1
    mkfifo-6163    [003] .....   960.432719: smb3_mknod_done: xid=12 sid=0xb55130f6 tid=0x46e6241c

Reviewed-by: Bharath SM <bharathsm@microsoft.com>
Reviewed-by: Meetakshi Setiya <msetiya@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/dir.c
fs/smb/client/trace.h

index 89333d9bce36eb85d952a387a499c566e1041f72..d11dc3aa458ba2d545c5a80786230b54cb62166b 100644 (file)
@@ -612,11 +612,18 @@ int cifs_mknod(struct mnt_idmap *idmap, struct inode *inode,
                goto mknod_out;
        }
 
+       trace_smb3_mknod_enter(xid, tcon->ses->Suid, tcon->tid, full_path);
+
        rc = tcon->ses->server->ops->make_node(xid, inode, direntry, tcon,
                                               full_path, mode,
                                               device_number);
 
 mknod_out:
+       if (rc)
+               trace_smb3_mknod_err(xid,  tcon->ses->Suid, tcon->tid, rc);
+       else
+               trace_smb3_mknod_done(xid, tcon->ses->Suid, tcon->tid);
+
        free_dentry_path(page);
        free_xid(xid);
        cifs_put_tlink(tlink);
index f9c1fd32d0b8c3d5cc34ad11895a8c302039cf73..5e83cb9da9028e0d15383e6e19413ea1da31e553 100644 (file)
@@ -375,6 +375,7 @@ DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(get_reparse_compound_enter);
 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(delete_enter);
 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mkdir_enter);
 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(tdis_enter);
+DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mknod_enter);
 
 DECLARE_EVENT_CLASS(smb3_inf_compound_done_class,
        TP_PROTO(unsigned int xid,
@@ -415,7 +416,7 @@ DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_wsl_ea_compound_done);
 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(delete_done);
 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mkdir_done);
 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(tdis_done);
-
+DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mknod_done);
 
 DECLARE_EVENT_CLASS(smb3_inf_compound_err_class,
        TP_PROTO(unsigned int xid,
@@ -461,6 +462,7 @@ DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_wsl_ea_compound_err);
 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mkdir_err);
 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(delete_err);
 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(tdis_err);
+DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mknod_err);
 
 /*
  * For logging SMB3 Status code and Command for responses which return errors