diff options
author | Andreas Herrmann <aherrman@de.ibm.com> | 2005-06-13 13:16:27 +0200 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.(none)> | 2005-06-13 21:28:17 -0500 |
commit | 65a8d4e1a3754f0bfaa62949ebe919930e3127a1 (patch) | |
tree | d1398c39556ece53c1ba5788d1f585a8673dd28d /drivers/s390/scsi | |
parent | 22753fa514aad02342e647ad13048caa282d9238 (diff) |
[SCSI] zfcp: fix: reopen port only if link-test fails
From: Maxim Shchetynin <maxim@de.ibm.com>
Reopen a remote port only if the link-test fails. This avoids that a
port is unnecessarily reopened.
Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/s390/scsi')
-rw-r--r-- | drivers/s390/scsi/zfcp_fsf.c | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c index 14aaab82dc96..225e3631e8d2 100644 --- a/drivers/s390/scsi/zfcp_fsf.c +++ b/drivers/s390/scsi/zfcp_fsf.c @@ -1267,8 +1267,7 @@ zfcp_fsf_abort_fcp_command_handler(struct zfcp_fsf_req *new_fsf_req) case FSF_SQ_INVOKE_LINK_TEST_PROCEDURE: debug_text_event(new_fsf_req->adapter->erp_dbf, 1, "fsf_sq_ltest"); - /* reopening link to port */ - zfcp_erp_port_reopen(unit->port, 0); + zfcp_test_link(unit->port); new_fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; break; case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED: @@ -3125,7 +3124,7 @@ zfcp_fsf_open_unit_handler(struct zfcp_fsf_req *fsf_req) /* Re-establish link to port */ debug_text_event(adapter->erp_dbf, 1, "fsf_sq_ltest"); - zfcp_erp_port_reopen(unit->port, 0); + zfcp_test_link(unit->port); fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; break; case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED: @@ -3368,7 +3367,7 @@ zfcp_fsf_close_unit_handler(struct zfcp_fsf_req *fsf_req) /* re-establish link to port */ debug_text_event(fsf_req->adapter->erp_dbf, 1, "fsf_sq_ltest"); - zfcp_erp_port_reopen(unit->port, 0); + zfcp_test_link(unit->port); fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; break; case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED: @@ -3931,12 +3930,7 @@ zfcp_fsf_send_fcp_command_handler(struct zfcp_fsf_req *fsf_req) /* re-establish link to port */ debug_text_event(fsf_req->adapter->erp_dbf, 1, "fsf_sq_ltest"); - zfcp_erp_port_reopen(unit->port, 0); - zfcp_cmd_dbf_event_fsf( - "sqltest", - fsf_req, - &header->fsf_status_qual, - sizeof (union fsf_status_qual)); + zfcp_test_link(unit->port); fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; break; case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED: @@ -3944,11 +3938,6 @@ zfcp_fsf_send_fcp_command_handler(struct zfcp_fsf_req *fsf_req) /* let scsi stack deal with retries and escalation */ debug_text_event(fsf_req->adapter->erp_dbf, 1, "fsf_sq_ulp"); - zfcp_cmd_dbf_event_fsf( - "sqdeperp", - fsf_req, - &header->fsf_status_qual, - sizeof (union fsf_status_qual)); fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; break; default: |