diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/s390/scsi/zfcp_aux.c | 20 | ||||
-rw-r--r-- | drivers/scsi/scsi_scan.c | 3 |
2 files changed, 5 insertions, 18 deletions
diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c index 821cde65e369..a1db95925138 100644 --- a/drivers/s390/scsi/zfcp_aux.c +++ b/drivers/s390/scsi/zfcp_aux.c | |||
@@ -815,9 +815,7 @@ zfcp_get_adapter_by_busid(char *bus_id) | |||
815 | struct zfcp_unit * | 815 | struct zfcp_unit * |
816 | zfcp_unit_enqueue(struct zfcp_port *port, fcp_lun_t fcp_lun) | 816 | zfcp_unit_enqueue(struct zfcp_port *port, fcp_lun_t fcp_lun) |
817 | { | 817 | { |
818 | struct zfcp_unit *unit, *tmp_unit; | 818 | struct zfcp_unit *unit; |
819 | unsigned int scsi_lun; | ||
820 | int found; | ||
821 | 819 | ||
822 | /* | 820 | /* |
823 | * check that there is no unit with this FCP_LUN already in list | 821 | * check that there is no unit with this FCP_LUN already in list |
@@ -863,22 +861,10 @@ zfcp_unit_enqueue(struct zfcp_port *port, fcp_lun_t fcp_lun) | |||
863 | } | 861 | } |
864 | 862 | ||
865 | zfcp_unit_get(unit); | 863 | zfcp_unit_get(unit); |
864 | unit->scsi_lun = scsilun_to_int((struct scsi_lun *)&unit->fcp_lun); | ||
866 | 865 | ||
867 | scsi_lun = 0; | ||
868 | found = 0; | ||
869 | write_lock_irq(&zfcp_data.config_lock); | 866 | write_lock_irq(&zfcp_data.config_lock); |
870 | list_for_each_entry(tmp_unit, &port->unit_list_head, list) { | 867 | list_add_tail(&unit->list, &port->unit_list_head); |
871 | if (tmp_unit->scsi_lun != scsi_lun) { | ||
872 | found = 1; | ||
873 | break; | ||
874 | } | ||
875 | scsi_lun++; | ||
876 | } | ||
877 | unit->scsi_lun = scsi_lun; | ||
878 | if (found) | ||
879 | list_add_tail(&unit->list, &tmp_unit->list); | ||
880 | else | ||
881 | list_add_tail(&unit->list, &port->unit_list_head); | ||
882 | atomic_clear_mask(ZFCP_STATUS_COMMON_REMOVE, &unit->status); | 868 | atomic_clear_mask(ZFCP_STATUS_COMMON_REMOVE, &unit->status); |
883 | atomic_set_mask(ZFCP_STATUS_COMMON_RUNNING, &unit->status); | 869 | atomic_set_mask(ZFCP_STATUS_COMMON_RUNNING, &unit->status); |
884 | write_unlock_irq(&zfcp_data.config_lock); | 870 | write_unlock_irq(&zfcp_data.config_lock); |
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index a67f315244d7..5df28e2fd3bb 100644 --- a/drivers/scsi/scsi_scan.c +++ b/drivers/scsi/scsi_scan.c | |||
@@ -1204,7 +1204,7 @@ static void scsi_sequential_lun_scan(struct scsi_target *starget, | |||
1204 | * Given a struct scsi_lun of: 0a 04 0b 03 00 00 00 00, this function returns | 1204 | * Given a struct scsi_lun of: 0a 04 0b 03 00 00 00 00, this function returns |
1205 | * the integer: 0x0b030a04 | 1205 | * the integer: 0x0b030a04 |
1206 | **/ | 1206 | **/ |
1207 | static int scsilun_to_int(struct scsi_lun *scsilun) | 1207 | int scsilun_to_int(struct scsi_lun *scsilun) |
1208 | { | 1208 | { |
1209 | int i; | 1209 | int i; |
1210 | unsigned int lun; | 1210 | unsigned int lun; |
@@ -1215,6 +1215,7 @@ static int scsilun_to_int(struct scsi_lun *scsilun) | |||
1215 | scsilun->scsi_lun[i + 1]) << (i * 8)); | 1215 | scsilun->scsi_lun[i + 1]) << (i * 8)); |
1216 | return lun; | 1216 | return lun; |
1217 | } | 1217 | } |
1218 | EXPORT_SYMBOL(scsilun_to_int); | ||
1218 | 1219 | ||
1219 | /** | 1220 | /** |
1220 | * int_to_scsilun: reverts an int into a scsi_lun | 1221 | * int_to_scsilun: reverts an int into a scsi_lun |