[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090526062235.GG6856@redhat.com>
Date: Tue, 26 May 2009 09:22:35 +0300
From: "Michael S. Tsirkin" <mst@...hat.com>
To: "Andries E. Brouwer" <Andries.Brouwer@....nl>
Cc: Alan Stern <stern@...land.harvard.edu>,
Kay Sievers <kay.sievers@...y.org>,
OGAWA Hirofumi <hirofumi@...l.parknet.co.jp>,
Kernel development list <linux-kernel@...r.kernel.org>,
USB list <linux-usb@...r.kernel.org>, Tejun Heo <tj@...nel.org>
Subject: Re: 2.a.30-rc7: fat filesystem misdetected as amiga
On Tue, May 26, 2009 at 12:31:20AM +0200, Andries E. Brouwer wrote:
> On Tue, May 26, 2009 at 12:47:55AM +0300, Michael S. Tsirkin wrote:
> > On Mon, May 25, 2009 at 05:08:12PM -0400, Alan Stern wrote:
> >> On Mon, 25 May 2009, Michael S. Tsirkin wrote:
> >>
> >>>> So apparently this is a bug in the device; it doesn't respond correctly
> >>>> to the first READ command. But since it does respond correctly to
> >>>> later commands, everything works okay thereafter. You ought to be able
> >>>> to recover from the error by running
> >>>>
> >>>> blockdev --rereadpt /dev/sdb
> >>>>
> >>>> manually.
> >>>
> >>> Yes, this helps.
> >>> Would it make sense for kernel to retry automatically?
> >>> Why doesn't it?
> >>
> >> I don't know the details in this case. Most likely the error code
> >> (Logical Block Address Out of Range) is interpreted as a fatal
> >> non-retryable error. For other sorts of errors, the kernel does retry.
> >>
> >>>> As far as I can tell, this has nothing to do with any user programs in
> >>>> the distribution. It appears to be entirely the device's fault.
> >>>>
> >>>> Alan Stern
> >>>
> >>> BTW, any idea how come I later get errors apparently from amiga fs?
> >>
> >> Not a clue. Unless it was some odd side effect of the partition code
> >> trying to interpret an uninitialized buffer.
> >>
> >> Alan Stern
>
> Comments:
>
> The partition reading code tries one by one all partition types that
> you have configured. If amigafs is one of these, also that will be tried.
>
> I can imagine that your device is a slow starter and needs some time
> to initialize itself, so that the first, or the first few, commands fail,
> and after that all is well.
>
> I hate retrying code. Such code is the reason that boot time increases
> all the time. Usually a read failure is missing media or so, and retrying
> is totally meaningless. Only at the lowest level should a retry be done,
> and preferably not blindly "let us try a few times" but only when there
> is a positive reason to expect that a second time might fare better.
Yea. But I don't know where that is.
I noted that if I stick a loop around check_partition
I just get the error reported each time.
> (Amiga is not usually the first or second to be tried, so if it fails
> then either the first few reads fail, or the first read failure is cached.)
Maybe it shouldn't printk stuff on IO failure when probing for
partitions then.
> Andries
>
>
> > So, the following works for me as a work-around. But it's probably not
> > the appropriate way to solve the problem. Or is it? Can someone who
> > understands partitions and filesystems tell?
> >
> >
> >
> > block: retry on I/O error when reading partition table
> >
> > Retry once on an I/O error when reading the partition table:
> > there's no much to loose, and this helps with some disk on
> > key devices I have.
> >
> > Signed-off-by: Michael S. Tsirkin <mst@...hat.com>
--
MST
--
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