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

Mark Lord
2006-04-27T16:03:42Z

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.
>
> I am still traumatised by my recent ten-minute wait for a dodgy DVD to
> become ejectable.
>
> I don't think -stable needs this, personally.

Perhaps, perhaps not. The current behaviour is semi *random*, though.
Sometimes it may just fail the entire request (wrong!),
sometimes it may do the (almost as wrong) fail a block at a time
from the beginning, until the bad sector is passed, and then succeed
on the remainder.

Ugh.
>> What I need to have happen when a request is failed due to bad-media,
>> is have it split the request into a sequence of single-block requests
>> that are passed to the LLD one at a time. The ones with real bad
>> sectors will then be independently failed, and the rest will get done.
>>
>> Much better. Much more complex.

--
Mark Lord
Real-Time Remedies Inc.
mlord@pobox.com