aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi/zfcp_erp.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/scsi/zfcp_erp.c')
-rw-r--r--drivers/s390/scsi/zfcp_erp.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c
index 07fa824d179f..4f86c0e12961 100644
--- a/drivers/s390/scsi/zfcp_erp.c
+++ b/drivers/s390/scsi/zfcp_erp.c
@@ -131,7 +131,7 @@ static void zfcp_close_qdio(struct zfcp_adapter *adapter)
131 debug_text_event(adapter->erp_dbf, 3, "qdio_down2a"); 131 debug_text_event(adapter->erp_dbf, 3, "qdio_down2a");
132 while (qdio_shutdown(adapter->ccw_device, 132 while (qdio_shutdown(adapter->ccw_device,
133 QDIO_FLAG_CLEANUP_USING_CLEAR) == -EINPROGRESS) 133 QDIO_FLAG_CLEANUP_USING_CLEAR) == -EINPROGRESS)
134 msleep(1000); 134 ssleep(1);
135 debug_text_event(adapter->erp_dbf, 3, "qdio_down2b"); 135 debug_text_event(adapter->erp_dbf, 3, "qdio_down2b");
136 136
137 /* cleanup used outbound sbals */ 137 /* cleanup used outbound sbals */
@@ -456,7 +456,7 @@ zfcp_test_link(struct zfcp_port *port)
456 456
457 zfcp_port_get(port); 457 zfcp_port_get(port);
458 retval = zfcp_erp_adisc(port); 458 retval = zfcp_erp_adisc(port);
459 if (retval != 0) { 459 if (retval != 0 && retval != -EBUSY) {
460 zfcp_port_put(port); 460 zfcp_port_put(port);
461 ZFCP_LOG_NORMAL("reopen needed for port 0x%016Lx " 461 ZFCP_LOG_NORMAL("reopen needed for port 0x%016Lx "
462 "on adapter %s\n ", port->wwpn, 462 "on adapter %s\n ", port->wwpn,
@@ -846,7 +846,8 @@ zfcp_erp_strategy_check_fsfreq(struct zfcp_erp_action *erp_action)
846 if (erp_action->fsf_req) { 846 if (erp_action->fsf_req) {
847 /* take lock to ensure that request is not deleted meanwhile */ 847 /* take lock to ensure that request is not deleted meanwhile */
848 spin_lock(&adapter->req_list_lock); 848 spin_lock(&adapter->req_list_lock);
849 if (zfcp_reqlist_find(adapter, erp_action->fsf_req->req_id)) { 849 if (zfcp_reqlist_find_safe(adapter, erp_action->fsf_req) &&
850 erp_action->fsf_req->erp_action == erp_action) {
850 /* fsf_req still exists */ 851 /* fsf_req still exists */
851 debug_text_event(adapter->erp_dbf, 3, "a_ca_req"); 852 debug_text_event(adapter->erp_dbf, 3, "a_ca_req");
852 debug_event(adapter->erp_dbf, 3, &erp_action->fsf_req, 853 debug_event(adapter->erp_dbf, 3, &erp_action->fsf_req,
@@ -1609,7 +1610,6 @@ static void zfcp_erp_scsi_scan(struct work_struct *work)
1609 scsi_scan_target(&rport->dev, 0, rport->scsi_target_id, 1610 scsi_scan_target(&rport->dev, 0, rport->scsi_target_id,
1610 unit->scsi_lun, 0); 1611 unit->scsi_lun, 0);
1611 atomic_clear_mask(ZFCP_STATUS_UNIT_SCSI_WORK_PENDING, &unit->status); 1612 atomic_clear_mask(ZFCP_STATUS_UNIT_SCSI_WORK_PENDING, &unit->status);
1612 wake_up(&unit->scsi_scan_wq);
1613 zfcp_unit_put(unit); 1613 zfcp_unit_put(unit);
1614 kfree(p); 1614 kfree(p);
1615} 1615}
@@ -1900,7 +1900,7 @@ zfcp_erp_adapter_strategy(struct zfcp_erp_action *erp_action)
1900 ZFCP_LOG_INFO("Waiting to allow the adapter %s " 1900 ZFCP_LOG_INFO("Waiting to allow the adapter %s "
1901 "to recover itself\n", 1901 "to recover itself\n",
1902 zfcp_get_busid_by_adapter(adapter)); 1902 zfcp_get_busid_by_adapter(adapter));
1903 msleep(jiffies_to_msecs(ZFCP_TYPE2_RECOVERY_TIME)); 1903 ssleep(ZFCP_TYPE2_RECOVERY_TIME);
1904 } 1904 }
1905 1905
1906 return retval; 1906 return retval;
@@ -2080,7 +2080,7 @@ zfcp_erp_adapter_strategy_open_qdio(struct zfcp_erp_action *erp_action)
2080 debug_text_event(adapter->erp_dbf, 3, "qdio_down1a"); 2080 debug_text_event(adapter->erp_dbf, 3, "qdio_down1a");
2081 while (qdio_shutdown(adapter->ccw_device, 2081 while (qdio_shutdown(adapter->ccw_device,
2082 QDIO_FLAG_CLEANUP_USING_CLEAR) == -EINPROGRESS) 2082 QDIO_FLAG_CLEANUP_USING_CLEAR) == -EINPROGRESS)
2083 msleep(1000); 2083 ssleep(1);
2084 debug_text_event(adapter->erp_dbf, 3, "qdio_down1b"); 2084 debug_text_event(adapter->erp_dbf, 3, "qdio_down1b");
2085 2085
2086 failed_qdio_establish: 2086 failed_qdio_establish:
@@ -2165,7 +2165,7 @@ zfcp_erp_adapter_strategy_open_fsf_xconfig(struct zfcp_erp_action *erp_action)
2165 ZFCP_LOG_DEBUG("host connection still initialising... " 2165 ZFCP_LOG_DEBUG("host connection still initialising... "
2166 "waiting and retrying...\n"); 2166 "waiting and retrying...\n");
2167 /* sleep a little bit before retry */ 2167 /* sleep a little bit before retry */
2168 msleep(jiffies_to_msecs(sleep)); 2168 ssleep(sleep);
2169 sleep *= 2; 2169 sleep *= 2;
2170 } 2170 }
2171 2171