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 f236bea..17813c3 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 09d3dfe..2be5e0c 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,