diff options
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/scsi/zfcp_aux.c | 20 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_erp.c | 7 |
2 files changed, 10 insertions, 17 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/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c index aef66bc2b6ca..4e7cb6dc4d34 100644 --- a/drivers/s390/scsi/zfcp_erp.c +++ b/drivers/s390/scsi/zfcp_erp.c | |||
@@ -1986,6 +1986,10 @@ zfcp_erp_adapter_strategy_generic(struct zfcp_erp_action *erp_action, int close) | |||
1986 | failed_openfcp: | 1986 | failed_openfcp: |
1987 | zfcp_close_fsf(erp_action->adapter); | 1987 | zfcp_close_fsf(erp_action->adapter); |
1988 | failed_qdio: | 1988 | failed_qdio: |
1989 | atomic_clear_mask(ZFCP_STATUS_ADAPTER_XCONFIG_OK | | ||
1990 | ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED | | ||
1991 | ZFCP_STATUS_ADAPTER_XPORT_OK, | ||
1992 | &erp_action->adapter->status); | ||
1989 | out: | 1993 | out: |
1990 | return retval; | 1994 | return retval; |
1991 | } | 1995 | } |
@@ -2167,6 +2171,9 @@ zfcp_erp_adapter_strategy_open_fsf_xconfig(struct zfcp_erp_action *erp_action) | |||
2167 | sleep *= 2; | 2171 | sleep *= 2; |
2168 | } | 2172 | } |
2169 | 2173 | ||
2174 | atomic_clear_mask(ZFCP_STATUS_ADAPTER_HOST_CON_INIT, | ||
2175 | &adapter->status); | ||
2176 | |||
2170 | if (!atomic_test_mask(ZFCP_STATUS_ADAPTER_XCONFIG_OK, | 2177 | if (!atomic_test_mask(ZFCP_STATUS_ADAPTER_XCONFIG_OK, |
2171 | &adapter->status)) { | 2178 | &adapter->status)) { |
2172 | ZFCP_LOG_INFO("error: exchange of configuration data for " | 2179 | ZFCP_LOG_INFO("error: exchange of configuration data for " |