From: Jens Axboe Date: Tue, 29 Nov 2005 20:03:34 +0000 (+0100) Subject: [SCSI] scsi_lib: stricter checks for clearing use_10_for_rw X-Git-Tag: v2.6.16-rc1~474^2~22^2~8^2~65 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=26a68019c86e1d1782984a7a5babff762cde1501;p=linux-2.6 [SCSI] scsi_lib: stricter checks for clearing use_10_for_rw Check the asc and ascq for being "invalid command opcode" as well. Signed-off-by: James Bottomley --- diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index ce9d73a292..1f2782767c 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -884,7 +884,8 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes, * system where READ CAPACITY failed, we may have read * past the end of the disk. */ - if (cmd->device->use_10_for_rw && + if ((cmd->device->use_10_for_rw && + sshdr.asc == 0x20 && sshdr.ascq == 0x00) && (cmd->cmnd[0] == READ_10 || cmd->cmnd[0] == WRITE_10)) { cmd->device->use_10_for_rw = 0;