Re: [PATCH] drivers/scsi/sd.c: fix uninitialized variable in handling medium errors

Rogier Wolff
2006-04-27T09:28:15Z

On Wed, Apr 26, 2006 at 04:35:36PM -0700, Andrew Morton wrote:
> Mark Lord <lkml@rtr.ca> wrote:
> >
> > > That's if we think -stable needs this fixed.
> >
> > Let's say a bunch of read bio's get coalesced into a single
> > 200+ sector request. This then fails on one single bad sector
> > out of the 200+. Without the patch, there is a very good chance
> > that sd.c will simply fail the entire request, all 200+ sectors.
> >
> > With the patch, it will fail the first block, and then retry
> > the remaining blocks. And repeat this until something works,
> > or until everything has failed one by one.
>
> Yowch. I have the feeling that this'll take our EIO-handling time from
> far-too-long to far-too-long*200.

Whoa! Can't get worse.

Hmm. OK. Maybe it can. It seems that IDE at least used to do the
"*200" behaviour.

I now issue a read for (1k-)block 1024 on my disk, which has blocks
1024 ... 1536 being bad. Kernel has decided i'm doing linear reads, so
it will issue a readahead for 1024-1536.

I then don't want to have the kernel continue the 1025-1536 readahead.

Also, if just block 1027 is bad, a normal read of block 1024 will read
the page 1024-1027, and return EIO on 1024 because it couldn't read
the whole page. We've learned to live with this, but if you guys are
going to look into it, keep this in mind, please....

> It's moderately hard to test, though. Easy enough for DVDs and CDs,
> but it's harder to take a marker pen to a hard drive.

I (accidentally) scratched a SCSI drive with a paperclip some weeks
ago. 65 bad blocks. (36 files hurt). I did manage to use the paperclip
to push the metal part that had fallen off the inside of the drive
somewhere to a spot where I could remove it. That metal part was
preventing the head from leaving the parking zone.

Anyway, I have enough disks with bad blocks that I can make the
following offer: Serious kernel developpers that need a
drive-with-bad-blocks for testing should submit their snail-mail
address. I'll see what I can do. (Specify SCSI or IDE or both).

Roger Wolff
R.E.Wolff@harddisk-recovery.nl

--
** R.E.Wolff@BitWizard.nl ** http://www.BitWizard.nl/ ** +31-15-2600998 **
*-- BitWizard writes Linux device drivers for any device you may have! --*
Q: It doesn't work. A: Look buddy, doesn't work is an ambiguous statement.
Does it sit on the couch all day? Is it unemployed? Please be specific!
Define 'it' and what it isn't doing. --------- Adapted from lxrbot FAQ