mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 08:19:28 +00:00
scsi: scsi_lib: rework scsi_internal_device_unblock_nowait()
Rework scsi_internal_device_unblock_nowait() into using a switch statement. No functional changes. Signed-off-by: Hannes Reinecke <hare@suse.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
fe083323bb
commit
8cd1ec78ca
1 changed files with 11 additions and 6 deletions
|
@ -3073,19 +3073,24 @@ int scsi_internal_device_unblock_nowait(struct scsi_device *sdev,
|
|||
* Try to transition the scsi device to SDEV_RUNNING or one of the
|
||||
* offlined states and goose the device queue if successful.
|
||||
*/
|
||||
if ((sdev->sdev_state == SDEV_BLOCK) ||
|
||||
(sdev->sdev_state == SDEV_TRANSPORT_OFFLINE))
|
||||
switch (sdev->sdev_state) {
|
||||
case SDEV_BLOCK:
|
||||
case SDEV_TRANSPORT_OFFLINE:
|
||||
sdev->sdev_state = new_state;
|
||||
else if (sdev->sdev_state == SDEV_CREATED_BLOCK) {
|
||||
break;
|
||||
case SDEV_CREATED_BLOCK:
|
||||
if (new_state == SDEV_TRANSPORT_OFFLINE ||
|
||||
new_state == SDEV_OFFLINE)
|
||||
sdev->sdev_state = new_state;
|
||||
else
|
||||
sdev->sdev_state = SDEV_CREATED;
|
||||
} else if (sdev->sdev_state != SDEV_CANCEL &&
|
||||
sdev->sdev_state != SDEV_OFFLINE)
|
||||
break;
|
||||
case SDEV_CANCEL:
|
||||
case SDEV_OFFLINE:
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
|
||||
}
|
||||
scsi_start_queue(sdev);
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue