3.3.6.1 Oplock Break Acknowledgment Timer Event

The oplock break acknowledgment timer MUST be started when the server sends an oplock break notification (as specified in section 2.2.23.1) to the client as a result of the underlying object store indicating an oplock break on a file.

When the oplock break acknowledgment timer expires, the server MUST scan for oplock breaks that have not been acknowledged by the client within the configured time. It does this by enumerating all opens in the GlobalOpenTable. For each open, if Open.OplockState is Breaking and Open.OplockTimeout is earlier than the current time, the server MUST acknowledge the oplock break to the underlying object store represented by Open.LocalOpen with SMB2_OPLOCK_LEVEL_NONE as the new oplock level, and MUST set Open.OplockLevel to SMB2_OPLOCK_LEVEL_NONE, and Open.OplockState to None.

The timer MUST be restarted if there is an open where Open.OplockState is equal to “Breaking”.