|
@@ -315,7 +315,6 @@ static void zfcp_fsf_fsfstatus_qual_eval(struct zfcp_fsf_req *req)
|
|
|
case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED:
|
|
|
return;
|
|
|
case FSF_SQ_COMMAND_ABORTED:
|
|
|
- req->status |= ZFCP_STATUS_FSFREQ_ABORTED;
|
|
|
break;
|
|
|
case FSF_SQ_NO_RECOM:
|
|
|
dev_err(&req->adapter->ccw_device->dev,
|
|
@@ -356,8 +355,7 @@ static void zfcp_fsf_protstatus_eval(struct zfcp_fsf_req *req)
|
|
|
zfcp_dbf_hba_fsf_response(req);
|
|
|
|
|
|
if (req->status & ZFCP_STATUS_FSFREQ_DISMISSED) {
|
|
|
- req->status |= ZFCP_STATUS_FSFREQ_ERROR |
|
|
|
- ZFCP_STATUS_FSFREQ_RETRY; /* only for SCSI cmnds. */
|
|
|
+ req->status |= ZFCP_STATUS_FSFREQ_ERROR;
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -375,7 +373,7 @@ static void zfcp_fsf_protstatus_eval(struct zfcp_fsf_req *req)
|
|
|
case FSF_PROT_ERROR_STATE:
|
|
|
case FSF_PROT_SEQ_NUMB_ERROR:
|
|
|
zfcp_erp_adapter_reopen(adapter, 0, "fspse_2", req);
|
|
|
- req->status |= ZFCP_STATUS_FSFREQ_RETRY;
|
|
|
+ req->status |= ZFCP_STATUS_FSFREQ_ERROR;
|
|
|
break;
|
|
|
case FSF_PROT_UNSUPP_QTCB_TYPE:
|
|
|
dev_err(&adapter->ccw_device->dev,
|
|
@@ -884,13 +882,11 @@ static void zfcp_fsf_abort_fcp_command_handler(struct zfcp_fsf_req *req)
|
|
|
break;
|
|
|
case FSF_PORT_BOXED:
|
|
|
zfcp_erp_port_boxed(unit->port, "fsafch3", req);
|
|
|
- req->status |= ZFCP_STATUS_FSFREQ_ERROR |
|
|
|
- ZFCP_STATUS_FSFREQ_RETRY;
|
|
|
+ req->status |= ZFCP_STATUS_FSFREQ_ERROR;
|
|
|
break;
|
|
|
case FSF_LUN_BOXED:
|
|
|
zfcp_erp_unit_boxed(unit, "fsafch4", req);
|
|
|
- req->status |= ZFCP_STATUS_FSFREQ_ERROR |
|
|
|
- ZFCP_STATUS_FSFREQ_RETRY;
|
|
|
+ req->status |= ZFCP_STATUS_FSFREQ_ERROR;
|
|
|
break;
|
|
|
case FSF_ADAPTER_STATUS_AVAILABLE:
|
|
|
switch (fsq->word[0]) {
|
|
@@ -988,8 +984,7 @@ static void zfcp_fsf_send_ct_handler(struct zfcp_fsf_req *req)
|
|
|
case FSF_ACCESS_DENIED:
|
|
|
break;
|
|
|
case FSF_PORT_BOXED:
|
|
|
- req->status |= ZFCP_STATUS_FSFREQ_ERROR |
|
|
|
- ZFCP_STATUS_FSFREQ_RETRY;
|
|
|
+ req->status |= ZFCP_STATUS_FSFREQ_ERROR;
|
|
|
break;
|
|
|
case FSF_PORT_HANDLE_NOT_VALID:
|
|
|
zfcp_erp_adapter_reopen(adapter, 0, "fsscth1", req);
|
|
@@ -1761,9 +1756,7 @@ static void zfcp_fsf_close_physical_port_handler(struct zfcp_fsf_req *req)
|
|
|
&unit->status);
|
|
|
read_unlock(&port->unit_list_lock);
|
|
|
zfcp_erp_port_boxed(port, "fscpph2", req);
|
|
|
- req->status |= ZFCP_STATUS_FSFREQ_ERROR |
|
|
|
- ZFCP_STATUS_FSFREQ_RETRY;
|
|
|
-
|
|
|
+ req->status |= ZFCP_STATUS_FSFREQ_ERROR;
|
|
|
break;
|
|
|
case FSF_ADAPTER_STATUS_AVAILABLE:
|
|
|
switch (header->fsf_status_qual.word[0]) {
|
|
@@ -1867,8 +1860,7 @@ static void zfcp_fsf_open_unit_handler(struct zfcp_fsf_req *req)
|
|
|
break;
|
|
|
case FSF_PORT_BOXED:
|
|
|
zfcp_erp_port_boxed(unit->port, "fsouh_2", req);
|
|
|
- req->status |= ZFCP_STATUS_FSFREQ_ERROR |
|
|
|
- ZFCP_STATUS_FSFREQ_RETRY;
|
|
|
+ req->status |= ZFCP_STATUS_FSFREQ_ERROR;
|
|
|
break;
|
|
|
case FSF_LUN_SHARING_VIOLATION:
|
|
|
if (header->fsf_status_qual.word[0])
|
|
@@ -2030,8 +2022,7 @@ static void zfcp_fsf_close_unit_handler(struct zfcp_fsf_req *req)
|
|
|
break;
|
|
|
case FSF_PORT_BOXED:
|
|
|
zfcp_erp_port_boxed(unit->port, "fscuh_3", req);
|
|
|
- req->status |= ZFCP_STATUS_FSFREQ_ERROR |
|
|
|
- ZFCP_STATUS_FSFREQ_RETRY;
|
|
|
+ req->status |= ZFCP_STATUS_FSFREQ_ERROR;
|
|
|
break;
|
|
|
case FSF_ADAPTER_STATUS_AVAILABLE:
|
|
|
switch (req->qtcb->header.fsf_status_qual.word[0]) {
|
|
@@ -2164,13 +2155,8 @@ static void zfcp_fsf_send_fcp_command_task_handler(struct zfcp_fsf_req *req)
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- if (unlikely(req->status & ZFCP_STATUS_FSFREQ_ABORTED)) {
|
|
|
- set_host_byte(scpnt, DID_SOFT_ERROR);
|
|
|
- goto skip_fsfstatus;
|
|
|
- }
|
|
|
-
|
|
|
if (unlikely(req->status & ZFCP_STATUS_FSFREQ_ERROR)) {
|
|
|
- set_host_byte(scpnt, DID_ERROR);
|
|
|
+ set_host_byte(scpnt, DID_TRANSPORT_DISRUPTED);
|
|
|
goto skip_fsfstatus;
|
|
|
}
|
|
|
|
|
@@ -2266,13 +2252,11 @@ static void zfcp_fsf_send_fcp_command_handler(struct zfcp_fsf_req *req)
|
|
|
break;
|
|
|
case FSF_PORT_BOXED:
|
|
|
zfcp_erp_port_boxed(unit->port, "fssfch5", req);
|
|
|
- req->status |= ZFCP_STATUS_FSFREQ_ERROR |
|
|
|
- ZFCP_STATUS_FSFREQ_RETRY;
|
|
|
+ req->status |= ZFCP_STATUS_FSFREQ_ERROR;
|
|
|
break;
|
|
|
case FSF_LUN_BOXED:
|
|
|
zfcp_erp_unit_boxed(unit, "fssfch6", req);
|
|
|
- req->status |= ZFCP_STATUS_FSFREQ_ERROR |
|
|
|
- ZFCP_STATUS_FSFREQ_RETRY;
|
|
|
+ req->status |= ZFCP_STATUS_FSFREQ_ERROR;
|
|
|
break;
|
|
|
case FSF_ADAPTER_STATUS_AVAILABLE:
|
|
|
if (header->fsf_status_qual.word[0] ==
|