• Wayne Boyer's avatar
    [SCSI] ipr: move setting of the allow_restart flag for vsets and disks · 56115598
    Wayne Boyer authored
    A problem was found where the call to scsi_add_device() fails intermittently
    for an adapter.  This is caused when __scsi_add_device() returns -ENODEV as
    a result of not calling scsi_probe_and_add_lun() since the call to
    scsi_host_scan_allowed() fails.  scsi_host_scan_allowed() fails because the
    adapter state is set to SHOST_RECOVERY instead of SHOST_RUNNING. The state of
    the adapter is being set to SHOST_RECOVERY by scsi_eh_scmd_add() during
    error handling.
    
    This problem is avoided by moving the setting of the allow_restart flag to
    later in the device initialization sequence.  This prevents further error
    handling if we get a NOT_READY response from a TUR command by causing
    scsi_check_sense() to return SUCCESS.  Therefore, scsi_eh_scmd_add() will
    not run and the adapter state will remain as SHOST_RUNNING.
    Signed-off-by: default avatarWayne Boyer <wayneb@linux.vnet.ibm.com>
    Acked-by: default avatarBrian King <brking@linux.vnet.ibm.com>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
    56115598
ipr.c 250 KB