• James Bottomley's avatar
    [PATCH] SCSI Flexible timout intfrastructure · f57d08d1
    James Bottomley authored
    The object of this infrastructure is to give HBAs early warning that
    error handling is about to happen and also provide them with the
    opportunity to do something about it.
    
    It introduces the extra template callback:
    
    eh_timed_out()
    
    which scsi_times_out() will call if it is populated to notify the LLD
    that an outstanding command took a timeout.
    
    There are three possible returns:
    
    EH_HANDLED:	I've fixed the problem, please complete the command for me
    (as soon as the timer fires, scsi_done will do nothing, so the timer
    itself will call a special version of scsi_done that doesn't check the
    timer).
    
    EH_NOT_HANDLED:	Invoke error recovery as normal
    
    EH_RESET_TIMER:	The command will complete, reset the timer to its
    original value and start it ticking again.
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
    Based on work by Christoph Hellwig and Luben Tuikov
    f57d08d1
scsi.c 32.6 KB