scsi: vmw_pvscsi: Return DID_RESET for status SAM_STAT_COMMAND_TERMINATED

Commands that are reset are returned with status
SAM_STAT_COMMAND_TERMINATED. PVSCSI currently returns DID_OK |
SAM_STAT_COMMAND_TERMINATED which fails the command. Instead, set hostbyte
to DID_RESET to allow upper layers to retry.

Tested by copying a large file between two pvscsi disks on same adapter
while performing a bus reset at 1-second intervals. Before fix, commands
sometimes fail with DID_OK. After fix, commands observed to fail with
DID_RESET.

Signed-off-by: Jim Gill <jgill@vmware.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

authored by Jim Gill and committed by Martin K. Petersen e95153b6 1214fd7b

Changed files
+8 -3
drivers
+8 -3
drivers/scsi/vmw_pvscsi.c
··· 561 561 (btstat == BTSTAT_SUCCESS || 562 562 btstat == BTSTAT_LINKED_COMMAND_COMPLETED || 563 563 btstat == BTSTAT_LINKED_COMMAND_COMPLETED_WITH_FLAG)) { 564 - cmd->result = (DID_OK << 16) | sdstat; 565 - if (sdstat == SAM_STAT_CHECK_CONDITION && cmd->sense_buffer) 566 - cmd->result |= (DRIVER_SENSE << 24); 564 + if (sdstat == SAM_STAT_COMMAND_TERMINATED) { 565 + cmd->result = (DID_RESET << 16); 566 + } else { 567 + cmd->result = (DID_OK << 16) | sdstat; 568 + if (sdstat == SAM_STAT_CHECK_CONDITION && 569 + cmd->sense_buffer) 570 + cmd->result |= (DRIVER_SENSE << 24); 571 + } 567 572 } else 568 573 switch (btstat) { 569 574 case BTSTAT_SUCCESS: