|
@@ -1173,6 +1173,7 @@ int scsi_prep_state_check(struct scsi_device *sdev, struct request *req)
|
|
|
if (unlikely(sdev->sdev_state != SDEV_RUNNING)) {
|
|
|
switch (sdev->sdev_state) {
|
|
|
case SDEV_OFFLINE:
|
|
|
+ case SDEV_TRANSPORT_OFFLINE:
|
|
|
/*
|
|
|
* If the device is offline we refuse to process any
|
|
|
* commands. The device must be brought online
|
|
@@ -2081,6 +2082,7 @@ scsi_device_set_state(struct scsi_device *sdev, enum scsi_device_state state)
|
|
|
switch (oldstate) {
|
|
|
case SDEV_CREATED:
|
|
|
case SDEV_OFFLINE:
|
|
|
+ case SDEV_TRANSPORT_OFFLINE:
|
|
|
case SDEV_QUIESCE:
|
|
|
case SDEV_BLOCK:
|
|
|
break;
|
|
@@ -2093,6 +2095,7 @@ scsi_device_set_state(struct scsi_device *sdev, enum scsi_device_state state)
|
|
|
switch (oldstate) {
|
|
|
case SDEV_RUNNING:
|
|
|
case SDEV_OFFLINE:
|
|
|
+ case SDEV_TRANSPORT_OFFLINE:
|
|
|
break;
|
|
|
default:
|
|
|
goto illegal;
|
|
@@ -2100,6 +2103,7 @@ scsi_device_set_state(struct scsi_device *sdev, enum scsi_device_state state)
|
|
|
break;
|
|
|
|
|
|
case SDEV_OFFLINE:
|
|
|
+ case SDEV_TRANSPORT_OFFLINE:
|
|
|
switch (oldstate) {
|
|
|
case SDEV_CREATED:
|
|
|
case SDEV_RUNNING:
|
|
@@ -2136,6 +2140,7 @@ scsi_device_set_state(struct scsi_device *sdev, enum scsi_device_state state)
|
|
|
case SDEV_RUNNING:
|
|
|
case SDEV_QUIESCE:
|
|
|
case SDEV_OFFLINE:
|
|
|
+ case SDEV_TRANSPORT_OFFLINE:
|
|
|
case SDEV_BLOCK:
|
|
|
break;
|
|
|
default:
|
|
@@ -2148,6 +2153,7 @@ scsi_device_set_state(struct scsi_device *sdev, enum scsi_device_state state)
|
|
|
case SDEV_CREATED:
|
|
|
case SDEV_RUNNING:
|
|
|
case SDEV_OFFLINE:
|
|
|
+ case SDEV_TRANSPORT_OFFLINE:
|
|
|
case SDEV_CANCEL:
|
|
|
break;
|
|
|
default:
|