• Mike Christie's avatar
    [SCSI] iscsi_tcp: fix relogin/shutdown hang · d7d05548
    Mike Christie authored
    When I made this patch:
    b64e77f7
    it was to solve a problem where we were already on the waitqueue
    becuase a connection problem/logout caused us to be on there
    when we were cleaning up the session. If we happen to get
    on queue for more normal reasons like their just does not happen
    to be any send space at the same time we are closing the connection
    we hit a race and get stuck in the wait.
    
    We should not check if the waitqueue is active
    because we could race with the network code. If
    the network xmit code is just about to enter the
    prepare to wait when we check for the waitqueue to
    be active then we will miss each other and the
    network code will fall into the wait and we will
    not run wake_up.
    Signed-off-by: default avatarMike Christie <michaelc@cs.wisc.edu>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
    d7d05548
iscsi_tcp.c 26.7 KB