[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <367656.23632.qm@web31810.mail.mud.yahoo.com>
Date: Thu, 7 Dec 2006 11:14:22 -0800 (PST)
From: Luben Tuikov <ltuikov@...oo.com>
To: James Bottomley <James.Bottomley@...elEye.com>
Cc: Andrew Morton <akpm@...l.org>, mdr@....com,
linux-scsi@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: Infinite retries reading the partition table
--- James Bottomley <James.Bottomley@...elEye.com> wrote:
> On Wed, 2006-12-06 at 12:24 -0800, Luben Tuikov wrote:
> > NEEDS_RETRY _does_ terminate, after it exhausts the retries. But since
> > by the ASC value we know that no amount of retries is going to work,
> > this chunk of the patch resolves it quicker, i.e. eliminates the
> > "NEEDS_RETRY" pointless retries (given the SK/ASC combination).
>
> I agree that it's useful behaviour. However, the change header should
> be something like "scsi_error: don't retry for unrecoverable medium
> errors" not "infinite retries .."
>
> > > > - if (scsi_end_request(cmd, 1, good_bytes, result == 0) == NULL)
> > > > + if (good_bytes &&
> > > > + scsi_end_request(cmd, 1, good_bytes, result == 0) == NULL)
> > > > return;
> > >
> > > What exactly is this supposed to be doing? its result is identical to
> > > the code it's replacing (because of the way scsi_end_request() processes
> > > its second argument), so it can't have any effect on the stated problem.
> >
> > I suppose this is true, but I'd rather it not even go in
> > scsi_end_request as (cmd, uptodate=1, good_bytes=0, retry=0) and complete
> > at the bottom as (cmd, uptodate=0, total_xfer, retry=0).
>
> But, logically, this isn't part of the change set ... the behaviour
> you're altering is unrelated to the change set details, so this piece
> shouldn't be in.
It is. If good_bytes=0 then nothing is up to date and uptodate should
be set to 0.
Look at my comment before the function call:
/* A number of bytes were successfully read. ...
I repeat again: it doesn't make sense to call scsi_end_request
with uptodate=1 and good_bytes=0, since _no bytes are uptodate_.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists