--- On Fri, 2/1/08, Tony Battersby <tonyb@xxxxxxxxxxxxxxx> wrote: > From: Tony Battersby <tonyb@xxxxxxxxxxxxxxx> > Subject: [PATCH] [SCSI] sd: make error handling more robust (v2) > To: "linux-scsi@xxxxxxxxxxxxxxx" <linux-scsi@xxxxxxxxxxxxxxx>, "James Bottomley" <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx> > Cc: "Luben Tuikov" <ltuikov@xxxxxxxxx>, "Salyzyn, Mark" <Mark_Salyzyn@xxxxxxxxxxx> > Date: Friday, February 1, 2008, 9:03 AM > 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 <tonyb@xxxxxxxxxxxxxxx> Acked-by: Luben Tuikov <ltuikov@xxxxxxxxx> > --- > > This is a simplified version of the original patch that Very simplified. ;-) > fixes just the > problem at hand, without trying to handle other theoretical > out-of-spec > cases. Yes, it is chunk #2 of the patch I sent to you to try on your hardware. > > 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 majordomo@xxxxxxxxxxxxxxx > More majordomo info at > http://vger.kernel.org/majordomo-info.html - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html