• Shyam Prasad N's avatar
    cifs: update the same create_guid on replay · 79520587
    Shyam Prasad N authored
    File open requests made to the server contain a
    CreateGuid, which is used by the server to identify
    the open request. If the same request needs to be
    replayed, it needs to be sent with the same CreateGuid
    in the durable handle v2 context.
    
    Without doing so, we could end up leaking handles on
    the server when:
    1. multichannel is used AND
    2. connection goes down, but not for all channels
    
    This is because the replayed open request would have a
    new CreateGuid and the server will treat this as a new
    request and open a new handle.
    
    This change fixes this by reusing the existing create_guid
    stored in the cached fid struct.
    
    REF: MS-SMB2 4.9 Replay Create Request on an Alternate Channel
    
    Fixes: 4f1fffa2 ("cifs: commands that are retried should have replay flag set")
    Signed-off-by: default avatarShyam Prasad N <sprasad@microsoft.com>
    Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
    79520587
smb2pdu.c 166 KB