diff options
Diffstat (limited to 'drivers/s390/scsi/zfcp_fsf.c')
-rw-r--r-- | drivers/s390/scsi/zfcp_fsf.c | 7 |
1 files changed, 7 insertions, 0 deletions
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 | ||