Skip to content
  • Hannes Reinecke's avatar
    [SCSI] scsi_transport_fc: Remove capping from dev_loss_tmo · f2818663
    Hannes Reinecke authored
    
    
    Currently dev_loss_tmo is capped by SCSI_DEVICE_BLOCK_MAX_TIMEOUT.
    This causes problem with multipathing when the 'no_path_retry' setting
    exceeds the dev_loss_tmo setting, as then the system might run into
    a deadlock when all paths have been removed temporarily for longer
    than dev_loss_tmo.
    The principal reasons for the capping has been that we should
    not allow a remote port to remain in status 'blocked' indefinitely,
    so the capping is there to ensure that the port status is being reset
    eventually.
    However, the fast_io_fail_tmo will also move the remote port out of
    the 'blocked' state, so for any HBA driver implementing both the
    capping should really be on the fast_io_fail_tmo, and not on the
    dev_loss_tmo.
    This patch implements just that, ie the fast_io_fail_tmo is capped
    to SCSI_DEVICE_BLOCK_TIMEOUT and the capping is removed from
    dev_loss_tmo when fast_io_fail_tmo is set.
    This allows us to synchronize the dev_loss_tmo setting to the
    'no_path_retry' setting from multipathing thus avoiding the deadlock.
    
    Signed-off-by: default avatarHannes Reinecke <hare@suse.de>
    Acked-by: default avatarJames Smart <james.smart@emulex.com>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
    f2818663