arcmsr: Fix error handling
PATCH 1/1 arcmsr: Fix error handling
Fixed error handling in queuecommand(), now all READ_ and WRITE_ commands are aborted in case of RAID is gone. Before only READ_6 and WRITE_6 commands were aborted.
Signed-off-by Maik Hampel <[email protected]>
---
drivers/scsi/arcmsr/arcmsr_hba.c +21 -11
@@ -1133,17 +1133,27 @@ static int arcmsr_queue_command(struct scsi_cmnd *cmd,uint8_t block_cmd; block_cmd = cmd->cmnd[0 ] &0x0f ; -if (block_cmd ==0x08 || block_cmd ==0x0a ) { -printk (KERN_NOTICE -"arcmsr%d: block 'read/write'" -"command with gone raid volume" -" Cmd = %2x, TargetId = %d, Lun = %d \n" - , acb->host->host_no - , cmd->cmnd[0 ] - , target, lun); - cmd->result = (DID_NO_CONNECT <<16 ); - cmd->scsi_done (cmd); -return 0 ; +switch (block_cmd) { +case READ_6 : +case READ_10 : +case READ_12 : +case READ_16 : +case WRITE_6 : +case WRITE_10 : +case WRITE_12 : +case WRITE_16 : +printk (KERN_NOTICE +"arcmsr%d: block 'read/write'" +"command with gone raid volume" +" Cmd = %2x, TargetId = %d, Lun = %d \n" + , acb->host->host_no + , cmd->cmnd[0 ] + , target, lun); + cmd->result = (DID_NO_CONNECT <<16 ); + cmd->scsi_done (cmd); +return 0 ; +default : +break ; } } if (atomic_read(&acb->ccboutstandingcount) >=
Signature · 1 line
1.4.4.4