smb3: add trace point for oplock not found
authorSteve French <stfrench@microsoft.com>
Sun, 22 May 2022 05:41:41 +0000 (00:41 -0500)
committerSteve French <stfrench@microsoft.com>
Sun, 22 May 2022 05:46:08 +0000 (00:46 -0500)
In order to debug problems with server potentially
sending us an oplock that we don't recognize (or a race
with close and oplock break) it would be helpful to have
a dynamic trace point for this case.  New tracepoint
is called trace_smb3_oplock_not_found

Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifs/smb2misc.c
fs/cifs/trace.h

index f236beaff96d6e32134321ef3190e79b2824c092..17813c3d0c6e0a0229f9b83f9da7ade8f38eed17 100644 (file)
@@ -732,6 +732,10 @@ smb2_is_valid_oplock_break(char *buffer, struct TCP_Server_Info *server)
        }
        spin_unlock(&cifs_tcp_ses_lock);
        cifs_dbg(FYI, "No file id matched, oplock break ignored\n");
+       trace_smb3_oplock_not_found(0 /* no xid */, rsp->PersistentFid,
+                                 le32_to_cpu(rsp->hdr.Id.SyncId.TreeId),
+                                 le64_to_cpu(rsp->hdr.SessionId));
+
        return true;
 }
 
index 09d3dfed86d98454d720491c291e1bcf7a8a34d1..2be5e0c8564d1c2004aec834750ff7e767d2c38b 100644 (file)
@@ -158,6 +158,7 @@ DEFINE_SMB3_FD_EVENT(flush_enter);
 DEFINE_SMB3_FD_EVENT(flush_done);
 DEFINE_SMB3_FD_EVENT(close_enter);
 DEFINE_SMB3_FD_EVENT(close_done);
+DEFINE_SMB3_FD_EVENT(oplock_not_found);
 
 DECLARE_EVENT_CLASS(smb3_fd_err_class,
        TP_PROTO(unsigned int xid,