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

From: Mark Lord
Date: Thu Apr 27 2006 - 12:03:34 EST


Andrew Morton wrote:
Mark Lord <lkml@xxxxxx> 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@xxxxxxxxx
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/