• Mike Christie's avatar
    vhost scsi: Add support for LUN resets. · efd838fe
    Mike Christie authored
    In newer versions of virtio-scsi we just reset the timer when an a
    command times out, so TMFs are never sent for the cmd time out case.
    However, in older kernels and for the TMF inject cases, we can still get
    resets and we end up just failing immediately so the guest might see the
    device get offlined and IO errors.
    
    For the older kernel cases, we want the same end result as the
    modern virtio-scsi driver where we let the lower levels fire their error
    handling and handle the problem. And at the upper levels we want to
    wait. This patch ties the LUN reset handling into the LIO TMF code which
    will just wait for outstanding commands to complete like we are doing in
    the modern virtio-scsi case.
    
    Note: I did not handle the ABORT case to keep this simple. For ABORTs
    LIO just waits on the cmd like how it does for the RESET case. If
    an ABORT fails, the guest OS ends up escalating to LUN RESET, so in
    the end we get the same behavior where we wait on the outstanding
    cmds.
    Signed-off-by: default avatarMike Christie <michael.christie@oracle.com>
    Link: https://lore.kernel.org/r/1604986403-4931-6-git-send-email-michael.christie@oracle.comSigned-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Acked-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    efd838fe
scsi.c 65.8 KB