diff options
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/scsi/zfcp_erp.c | 2 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_fsf.c | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c index 76fef3f6387e..4f86c0e12961 100644 --- a/drivers/s390/scsi/zfcp_erp.c +++ b/drivers/s390/scsi/zfcp_erp.c | |||
@@ -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, |
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c index 665fcb6ec5d5..908e8b2107c1 100644 --- a/drivers/s390/scsi/zfcp_fsf.c +++ b/drivers/s390/scsi/zfcp_fsf.c | |||
@@ -1668,6 +1668,12 @@ zfcp_fsf_send_els(struct zfcp_send_els *els) | |||
1668 | goto failed_req; | 1668 | goto failed_req; |
1669 | } | 1669 | } |
1670 | 1670 | ||
1671 | if (unlikely(!atomic_test_mask(ZFCP_STATUS_COMMON_UNBLOCKED, | ||
1672 | &els->port->status))) { | ||
1673 | ret = -EBUSY; | ||
1674 | goto port_blocked; | ||
1675 | } | ||
1676 | |||
1671 | sbale = zfcp_qdio_sbale_req(fsf_req, fsf_req->sbal_curr, 0); | 1677 | sbale = zfcp_qdio_sbale_req(fsf_req, fsf_req->sbal_curr, 0); |
1672 | if (zfcp_use_one_sbal(els->req, els->req_count, | 1678 | if (zfcp_use_one_sbal(els->req, els->req_count, |
1673 | els->resp, els->resp_count)){ | 1679 | els->resp, els->resp_count)){ |
@@ -1749,6 +1755,7 @@ zfcp_fsf_send_els(struct zfcp_send_els *els) | |||
1749 | "0x%06x)\n", zfcp_get_busid_by_adapter(adapter), d_id); | 1755 | "0x%06x)\n", zfcp_get_busid_by_adapter(adapter), d_id); |
1750 | goto out; | 1756 | goto out; |
1751 | 1757 | ||
1758 | port_blocked: | ||
1752 | failed_send: | 1759 | failed_send: |
1753 | zfcp_fsf_req_free(fsf_req); | 1760 | zfcp_fsf_req_free(fsf_req); |
1754 | 1761 | ||