• Jeff Layton's avatar
    cifs: handle cancelled requests better · 1be912dd
    Jeff Layton authored
    Currently, when a request is cancelled via signal, we delete the mid
    immediately. If the request was already transmitted however, the client
    is still likely to receive a response. When it does, it won't recognize
    it however and will pop a printk.
    
    It's also a little dangerous to just delete the mid entry like this. We
    may end up reusing that mid. If we do then we could potentially get the
    response from the first request confused with the later one.
    
    Prevent the reuse of mids by marking them as cancelled and keeping them
    on the pending_mid_q list. If the reply comes in, we'll delete it from
    the list then. If it never comes, then we'll delete it at reconnect
    or when cifsd comes down.
    Reviewed-by: default avatarPavel Shilovsky <piastryyy@gmail.com>
    Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
    Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
    1be912dd
transport.c 25.8 KB