From: Hannes Reinecke <[email protected]>

When an RSCN gets delayed (or not being sent at all) the transport
class will detect an error, EH kicks in, and eventually will be
setting the device to offline.
If we receive an RSCN after that the device will stay in 'offline'.
This patch allows for an 'offline' to 'blocked' transition, thereby
allowing the device to become active again.

Signed-off-by: Hannes Reinecke <[email protected]>
---
 drivers/scsi/scsi_lib.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index aaa1819b0a69..7db3c5fae469 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -2764,6 +2764,7 @@ scsi_device_set_state(struct scsi_device *sdev, enum 
scsi_device_state state)
                switch (oldstate) {
                case SDEV_RUNNING:
                case SDEV_CREATED_BLOCK:
+               case SDEV_OFFLINE:
                        break;
                default:
                        goto illegal;
-- 
2.16.4

Reply via email to