[SCSI] scsi_transport_sas; fix user_scan
the user_scan() callback currently has the potential to identify the wrong device in the presence of expanders. This is because it finds the first device with a matching target_id, which might be an expander. Fix this by making it look specifically for end devices. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
78a904b654
commit
6d99a3f372
1 changed files with 2 additions and 1 deletions
|
@ -955,7 +955,8 @@ static int sas_user_scan(struct Scsi_Host *shost, uint channel,
|
|||
list_for_each_entry(rphy, &sas_host->rphy_list, list) {
|
||||
struct sas_phy *parent = dev_to_phy(rphy->dev.parent);
|
||||
|
||||
if (rphy->scsi_target_id == -1)
|
||||
if (rphy->identify.device_type != SAS_END_DEVICE ||
|
||||
rphy->scsi_target_id == -1)
|
||||
continue;
|
||||
|
||||
if ((channel == SCAN_WILD_CARD || channel == parent->port_identifier) &&
|
||||
|
|
Loading…
Reference in a new issue