• Kashyap, Desai's avatar
    [SCSI] mptfusion: Block Error handling for deleting devices or Device in DMD · c9de7dc4
    Kashyap, Desai authored
    Issue description:
    In multipath topology, when device deletion is in transient state,
    multipath driver can call blk_flush_queue() as part of path failure.
    Before device get deleted from OS, Device may go OFFLINE as part of error
    handling kicked off triggered from multipathing driver. Above condition hits
    more frequently if device missing delay timer (which is LSI specific firmware
    parameter) is non zero value.
    
    root cause of this issue is Error handling thread is getting kicked off for
    device which is not really present(in transient state of deleting).
    
    This patch has solution for this issue. driver is now using eh_timed_out
    callback. See below.
    
    mptsas_transport_template->eh_timed_out = mptsas_eh_timed_out
    
    Using mptsas_eh_timed_out function, driver can decide weather vdevice is
    under Device missing delay or deleting state.
    
    for either of those cases, there is BLK_EH_RESET_TIMER return to scsi mid
    and error handling thread will not be kicked off for that particular scsi
    command.
    Signed-off-by: default avatarKashyap Desai <kashyap.desai@lsi.com>
    Cc: Stable Tree <stable@kernel.org>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
    c9de7dc4
mptscsih.c 92.7 KB