diff options
| author | 2009-01-19 14:00:57 +1100 | |
|---|---|---|
| committer | 2009-01-19 14:00:57 +1100 | |
| commit | 6c5200ce3c528a8f7695ee62f33ad84d8f84d444 (patch) | |
| tree | b240465c2dadbe0366a5b66d60c4776be1b7670d /drivers/scsi/scsi.c | |
| parent | [XFS] Remove the rest of the macro-to-function indirections. (diff) | |
| parent | Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband (diff) | |
| download | linux-dev-6c5200ce3c528a8f7695ee62f33ad84d8f84d444.tar.xz linux-dev-6c5200ce3c528a8f7695ee62f33ad84d8f84d444.zip | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'drivers/scsi/scsi.c')
| -rw-r--r-- | drivers/scsi/scsi.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c index 42e72a2c1f98..cbcd3f681b62 100644 --- a/drivers/scsi/scsi.c +++ b/drivers/scsi/scsi.c @@ -1095,7 +1095,8 @@ EXPORT_SYMBOL(__starget_for_each_device); * Description: Looks up the scsi_device with the specified @lun for a given * @starget. The returned scsi_device does not have an additional * reference. You must hold the host's host_lock over this call and - * any access to the returned scsi_device. + * any access to the returned scsi_device. A scsi_device in state + * SDEV_DEL is skipped. * * Note: The only reason why drivers should use this is because * they need to access the device list in irq context. Otherwise you @@ -1107,6 +1108,8 @@ struct scsi_device *__scsi_device_lookup_by_target(struct scsi_target *starget, struct scsi_device *sdev; list_for_each_entry(sdev, &starget->devices, same_target_siblings) { + if (sdev->sdev_state == SDEV_DEL) + continue; if (sdev->lun ==lun) return sdev; } |
