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
-
: 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