• M
    [SCSI] libiscsi: Fix recovery slowdown regression · 4ae0a6c1
    Mike Christie 提交于
    We could be failing/stopping a connection due to libiscsi starting
    recovery/cleanup, but the xmit path or scsi eh thread path
    could be dropping the connection at the same time.
    
    As a result the session->state gets set to failed instead of in
    recovery. We end up not blocking the session
    and so the replacement timeout never gets started and we only end up
    failing the IO when scsi_softirq_done sees that the
    cmd has been running for (cmd->allowed + 1) * rq->timeout secs.
    
    We used to fail the IO right away so users are seeing a long
    delay when using dm-multipath. This problem was added in
    2.6.28.
    Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
    Cc: stable@kernel.org
    Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
    4ae0a6c1
libiscsi.c 90.8 KB