aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/scsi')
-rw-r--r--drivers/s390/scsi/zfcp_fsf.c21
1 files changed, 8 insertions, 13 deletions
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index e697b1cb6d27..665fcb6ec5d5 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -1116,6 +1116,10 @@ zfcp_fsf_abort_fcp_command(unsigned long old_req_id,
1116 goto out; 1116 goto out;
1117 } 1117 }
1118 1118
1119 if (unlikely(!atomic_test_mask(ZFCP_STATUS_COMMON_UNBLOCKED,
1120 &unit->status)))
1121 goto unit_blocked;
1122
1119 sbale = zfcp_qdio_sbale_req(fsf_req, fsf_req->sbal_curr, 0); 1123 sbale = zfcp_qdio_sbale_req(fsf_req, fsf_req->sbal_curr, 0);
1120 sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; 1124 sbale[0].flags |= SBAL_FLAGS0_TYPE_READ;
1121 sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; 1125 sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY;
@@ -1131,22 +1135,13 @@ zfcp_fsf_abort_fcp_command(unsigned long old_req_id,
1131 1135
1132 zfcp_fsf_start_timer(fsf_req, ZFCP_SCSI_ER_TIMEOUT); 1136 zfcp_fsf_start_timer(fsf_req, ZFCP_SCSI_ER_TIMEOUT);
1133 retval = zfcp_fsf_req_send(fsf_req); 1137 retval = zfcp_fsf_req_send(fsf_req);
1134 if (retval) { 1138 if (!retval)
1135 ZFCP_LOG_INFO("error: Failed to send abort command request " 1139 goto out;
1136 "on adapter %s, port 0x%016Lx, unit 0x%016Lx\n", 1140
1137 zfcp_get_busid_by_adapter(adapter), 1141 unit_blocked:
1138 unit->port->wwpn, unit->fcp_lun);
1139 zfcp_fsf_req_free(fsf_req); 1142 zfcp_fsf_req_free(fsf_req);
1140 fsf_req = NULL; 1143 fsf_req = NULL;
1141 goto out;
1142 }
1143 1144
1144 ZFCP_LOG_DEBUG("Abort FCP Command request initiated "
1145 "(adapter%s, port d_id=0x%06x, "
1146 "unit x%016Lx, old_req_id=0x%lx)\n",
1147 zfcp_get_busid_by_adapter(adapter),
1148 unit->port->d_id,
1149 unit->fcp_lun, old_req_id);
1150 out: 1145 out:
1151 write_unlock_irqrestore(&adapter->request_queue.queue_lock, lock_flags); 1146 write_unlock_irqrestore(&adapter->request_queue.queue_lock, lock_flags);
1152 return fsf_req; 1147 return fsf_req;