OSDN Git Service

scsi: core: Allow state transitions from OFFLINE to BLOCKED
authorHannes Reinecke <hare@suse.com>
Sun, 7 Oct 2018 08:35:35 +0000 (10:35 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 16 Oct 2018 03:53:29 +0000 (23:53 -0400)
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 <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/scsi_lib.c

index aaa1819..7db3c5f 100644 (file)
@@ -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;