On Thu, Aug 10, 2017 at 09:05:30AM +0200, Hannes Reinecke wrote: > Rework scsi_internal_device_unblock_nowait() into using a > switch statement. > No functional changes. > > Signed-off-by: Hannes Reinecke <hare@xxxxxxxx> > --- > drivers/scsi/scsi_lib.c | 18 ++++++++++++------ > 1 file changed, 12 insertions(+), 6 deletions(-) > > diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c > index 1ae531b..035aa4c 100644 > --- a/drivers/scsi/scsi_lib.c > +++ b/drivers/scsi/scsi_lib.c > @@ -3074,19 +3074,25 @@ 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_TRANSPORT_OFFLINE: > + case SDEV_CANCEL: > + case SDEV_OFFLINE: > + break; > + default: > return -EINVAL; This changes ok by default to reject by default and instead lists the ok states. Which probably is the right thing to do for future proofing against new states, so: Reviewed-by: Christoph Hellwig <hch@xxxxxx>