[SCSI] ibmvfc: Fixup TMF response handling
When processing the response to either a LUN reset, target reset, or an abort task set, the ibmvfc driver needs to treat as success receiving a response with a non-zero status in the response IU along with a general transport error with the FCP response code being zero. The VIOS currently guarantees this cannot happen, but a future version of VIOS may allow this to be returned, so ensure we handle this response combination correctly for TMFs, as we already do for SCSI commands. Signed-off-by: Brian King <brking@linux.vnet.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
parent
44d9269481
commit
230934a6fe
1 changed files with 8 additions and 2 deletions
|
@ -1731,7 +1731,10 @@ static int ibmvfc_reset_device(struct scsi_device *sdev, int type, char *desc)
|
|||
sdev_printk(KERN_INFO, sdev, "Resetting %s\n", desc);
|
||||
wait_for_completion(&evt->comp);
|
||||
|
||||
if (rsp_iu.cmd.status) {
|
||||
if (rsp_iu.cmd.status)
|
||||
rsp_code = ibmvfc_get_err_result(&rsp_iu.cmd);
|
||||
|
||||
if (rsp_code) {
|
||||
if (fc_rsp->flags & FCP_RSP_LEN_VALID)
|
||||
rsp_code = fc_rsp->data.info.rsp_code;
|
||||
|
||||
|
@ -1820,7 +1823,10 @@ static int ibmvfc_abort_task_set(struct scsi_device *sdev)
|
|||
sdev_printk(KERN_INFO, sdev, "Aborting outstanding commands\n");
|
||||
wait_for_completion(&evt->comp);
|
||||
|
||||
if (rsp_iu.cmd.status) {
|
||||
if (rsp_iu.cmd.status)
|
||||
rsp_code = ibmvfc_get_err_result(&rsp_iu.cmd);
|
||||
|
||||
if (rsp_code) {
|
||||
if (fc_rsp->flags & FCP_RSP_LEN_VALID)
|
||||
rsp_code = fc_rsp->data.info.rsp_code;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue