On Wed, 2015-08-12 at 18:51 -0500, Matthew R. Ochs wrote: > Introduce support for enhanced I/O error handling. > > A device state is added to track 3 possible states of the device: > > Normal - the device is operating normally and is fully operational > > Limbo - the device is in a reset/recovery scenario and its operational > status is paused > > Failed/terminating - the device has either failed to be reset/recovered > or is being terminated (removed); it is no longer > operational > > All operations are allowed when the device is operating normally. When the > device transitions to limbo state, I/O must be paused. To help accomplish > this, a wait queue is introduced where existing and new threads can wait > until the device is no longer in limbo. When coming out of limbo, threads > need to check the state and error out gracefully when encountering the > failed state. When the device transitions to the failed/terminating state, > normal operations are no longer allowed. Only specially designated > operations related to graceful cleanup are permitted. > > Signed-off-by: Matthew R. Ochs <mrochs@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Manoj N. Kumar <manoj@xxxxxxxxxxxxxxxxxx> > Reviewed-by: Daniel Axtens <dja@xxxxxxxxxx> Thanks for integrating my suggestions. Reviewed-by: Michael Neuling <mikey@xxxxxxxxxxx> > --- > drivers/scsi/cxlflash/Kconfig | 2 +- > drivers/scsi/cxlflash/common.h | 12 ++- > drivers/scsi/cxlflash/main.c | 174 ++++++++++++++++++++++++++++++++++++++--- > drivers/scsi/cxlflash/main.h | 6 +- > 4 files changed, 177 insertions(+), 17 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html