diff options
author | Andreas Herrmann <aherrman@de.ibm.com> | 2005-06-13 07:17:44 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.(none)> | 2005-06-13 22:29:14 -0400 |
commit | 516a4201bacfd61ea957039d6f47276ee9c32a0d (patch) | |
tree | 2cd30258cf21fd3f2fa115d4f8becac8a2b78a55 /drivers/s390/scsi | |
parent | 65a8d4e1a3754f0bfaa62949ebe919930e3127a1 (diff) |
[SCSI] zfcp: fix: mark fsf request failed when receiving unknown status qualifier
From: Maxim Shchetynin <maxim@de.ibm.com>
Correct a bug in zfcp_fsf_send_fcp_command_handler. An fsf request
was not marked as failed if an unknown status qualifier was returned.
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 | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c index 225e3631e8d2..bf66fc6d8a97 100644 --- a/drivers/s390/scsi/zfcp_fsf.c +++ b/drivers/s390/scsi/zfcp_fsf.c | |||
@@ -3931,19 +3931,16 @@ zfcp_fsf_send_fcp_command_handler(struct zfcp_fsf_req *fsf_req) | |||
3931 | debug_text_event(fsf_req->adapter->erp_dbf, 1, | 3931 | debug_text_event(fsf_req->adapter->erp_dbf, 1, |
3932 | "fsf_sq_ltest"); | 3932 | "fsf_sq_ltest"); |
3933 | zfcp_test_link(unit->port); | 3933 | zfcp_test_link(unit->port); |
3934 | fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; | ||
3935 | break; | 3934 | break; |
3936 | case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED: | 3935 | case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED: |
3937 | /* FIXME(hw) need proper specs for proper action */ | 3936 | /* FIXME(hw) need proper specs for proper action */ |
3938 | /* let scsi stack deal with retries and escalation */ | 3937 | /* let scsi stack deal with retries and escalation */ |
3939 | debug_text_event(fsf_req->adapter->erp_dbf, 1, | 3938 | debug_text_event(fsf_req->adapter->erp_dbf, 1, |
3940 | "fsf_sq_ulp"); | 3939 | "fsf_sq_ulp"); |
3941 | fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; | ||
3942 | break; | 3940 | break; |
3943 | default: | 3941 | default: |
3944 | /* FIXME: shall we consider this a successful transfer? */ | ||
3945 | ZFCP_LOG_NORMAL | 3942 | ZFCP_LOG_NORMAL |
3946 | ("bug: Wrong status qualifier 0x%x arrived.\n", | 3943 | ("Unknown status qualifier 0x%x arrived.\n", |
3947 | header->fsf_status_qual.word[0]); | 3944 | header->fsf_status_qual.word[0]); |
3948 | debug_text_event(fsf_req->adapter->erp_dbf, 0, | 3945 | debug_text_event(fsf_req->adapter->erp_dbf, 0, |
3949 | "fsf_sq_inval:"); | 3946 | "fsf_sq_inval:"); |
@@ -3952,6 +3949,7 @@ zfcp_fsf_send_fcp_command_handler(struct zfcp_fsf_req *fsf_req) | |||
3952 | sizeof(u32)); | 3949 | sizeof(u32)); |
3953 | break; | 3950 | break; |
3954 | } | 3951 | } |
3952 | fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; | ||
3955 | break; | 3953 | break; |
3956 | 3954 | ||
3957 | case FSF_GOOD: | 3955 | case FSF_GOOD: |