Commit 692aebfc authored by brking@us.ibm.com's avatar brking@us.ibm.com Committed by James Bottomley

[SCSI] ipr: slave_alloc optimization

Optimize ipr's slave_alloc to return -ENXIO for devices that
do not exist.
Signed-off-by: default avatarBrian King <brking@us.ibm.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent 0726ce26
...@@ -2815,13 +2815,14 @@ static int ipr_slave_configure(struct scsi_device *sdev) ...@@ -2815,13 +2815,14 @@ static int ipr_slave_configure(struct scsi_device *sdev)
* handling new commands. * handling new commands.
* *
* Return value: * Return value:
* 0 on success * 0 on success / -ENXIO if device does not exist
**/ **/
static int ipr_slave_alloc(struct scsi_device *sdev) static int ipr_slave_alloc(struct scsi_device *sdev)
{ {
struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *) sdev->host->hostdata; struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *) sdev->host->hostdata;
struct ipr_resource_entry *res; struct ipr_resource_entry *res;
unsigned long lock_flags; unsigned long lock_flags;
int rc = -ENXIO;
sdev->hostdata = NULL; sdev->hostdata = NULL;
...@@ -2836,13 +2837,14 @@ static int ipr_slave_alloc(struct scsi_device *sdev) ...@@ -2836,13 +2837,14 @@ static int ipr_slave_alloc(struct scsi_device *sdev)
res->in_erp = 0; res->in_erp = 0;
sdev->hostdata = res; sdev->hostdata = res;
res->needs_sync_complete = 1; res->needs_sync_complete = 1;
rc = 0;
break; break;
} }
} }
spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags);
return 0; return rc;
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment