]> git.baikalelectronics.ru Git - kernel.git/commit
cxlflash: Base error recovery support
authorMatthew R. Ochs <mrochs@linux.vnet.ibm.com>
Fri, 14 Aug 2015 02:47:34 +0000 (21:47 -0500)
committerJames Bottomley <JBottomley@Odin.com>
Thu, 27 Aug 2015 01:03:47 +0000 (18:03 -0700)
commit4202c97ad6d4f54a61111754d50b5bc727d77677
tree48c2da1d010d7c1fa0aa325f462cce70ce109e87
parent720fb5a1c628edefc347fa6ca8290cee83f0fa08
cxlflash: Base error recovery support

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@linux.vnet.ibm.com>
Signed-off-by: Manoj N. Kumar <manoj@linux.vnet.ibm.com>
Reviewed-by: Daniel Axtens <dja@axtens.net>
Reviewed-by: Michael Neuling <mikey@neuling.org>
Reviewed-by: Wen Xiong <wenxiong@linux.vnet.ibm.com>
Reviewed-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
drivers/scsi/cxlflash/Kconfig
drivers/scsi/cxlflash/common.h
drivers/scsi/cxlflash/main.c
drivers/scsi/cxlflash/main.h
drivers/scsi/cxlflash/sislite.h [changed mode: 0755->0644]