[SCSI] zfcp: fix: reopen port only if link-test fails
authorAndreas Herrmann <aherrman@de.ibm.com>
Mon, 13 Jun 2005 11:16:27 +0000 (13:16 +0200)
committerJames Bottomley <jejb@mulgrave.(none)>
Tue, 14 Jun 2005 02:28:17 +0000 (21:28 -0500)
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>
drivers/s390/scsi/zfcp_fsf.c

index 14aaab82dc969e470e34cc766b514dc62ed665af..225e3631e8d2d29ad499d33bcc36d96111cd2262 100644 (file)
@@ -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: