On Aug 9, 2012, at 3:51 AM, vikas.chaudhary@xxxxxxxxxx wrote: > From: Vikas Chaudhary <vikas.chaudhary@xxxxxxxxxx> > > FC and iSCSI class set SCSI devices to transport-offline state after > fast_io_fail/replacement_timeout has fired, but after relogin, function > scsi_internal_device_unblock() is not setting scsi device state to running. > Due to this the devices even after being relogged in remain offline. > > Signed-off-by: Vikas Chaudhary <vikas.chaudhary@xxxxxxxxxx> > --- > drivers/scsi/scsi_lib.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c > index ffd7773..4ba3719 100644 > --- a/drivers/scsi/scsi_lib.c > +++ b/drivers/scsi/scsi_lib.c > @@ -2470,7 +2470,8 @@ scsi_internal_device_unblock(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) > + if ((sdev->sdev_state == SDEV_BLOCK) || > + (sdev->sdev_state == SDEV_TRANSPORT_OFFLINE)) > sdev->sdev_state = new_state; > else if (sdev->sdev_state == SDEV_CREATED_BLOCK) { > if (new_state == SDEV_TRANSPORT_OFFLINE || Dumb mistake on my part. Thank you for fixing this. Reviewed-by: Mike Christie <michaelc@xxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html