• Pavel Shilovsky's avatar
    CIFS: Fix oplock handling for SMB 2.1+ protocols · a016e279
    Pavel Shilovsky authored
    There may be situations when a server negotiates SMB 2.1
    protocol version or higher but responds to a CREATE request
    with an oplock rather than a lease.
    
    Currently the client doesn't handle such a case correctly:
    when another CREATE comes in the server sends an oplock
    break to the initial CREATE and the client doesn't send
    an ack back due to a wrong caching level being set (READ
    instead of RWH). Missing an oplock break ack makes the
    server wait until the break times out which dramatically
    increases the latency of the second CREATE.
    
    Fix this by properly detecting oplocks when using SMB 2.1
    protocol version and higher.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarPavel Shilovsky <pshilov@microsoft.com>
    Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
    Reviewed-by: default avatarRonnie Sahlberg <lsahlber@redhat.com>
    a016e279
smb2ops.c 138 KB