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

Reply via email to