This patch fixes a problem with some out-of-spec SCSI disks that report
hardware or medium errors incorrectly. Without the patch, the kernel
may silently ignore a failed write command or return corrupted data on a
failed read command.
Signed-off-by: Tony Battersby <[EMAIL PROTECTED]>
---
This is a simplified version of the original patch that fixes just the
problem at hand, without trying to handle other theoretical out-of-spec
cases.
Applies to kernels 2.6.18 - 2.6.24-git10+.
--- linux-2.6.24-git10/drivers/scsi/sd.c.orig 2008-02-01 11:24:37.000000000
-0500
+++ linux-2.6.24-git10/drivers/scsi/sd.c 2008-02-01 11:26:12.000000000
-0500
@@ -990,6 +990,8 @@ static int sd_done(struct scsi_cmnd *SCp
/* This computation should always be done in terms of
* the resolution of the device's medium.
*/
+ if (bad_lba < start_lba)
+ goto out;
good_bytes = (bad_lba - start_lba)*SCpnt->device->sector_size;
break;
case RECOVERED_ERROR:
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html