[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.44L0.0908031539161.2888-100000@iolanthe.rowland.org>
Date: Mon, 3 Aug 2009 15:52:21 -0400 (EDT)
From: Alan Stern <stern@...land.harvard.edu>
To: "Lev A. Melnikovsky" <melnikovsky@...l.ru>
cc: Artur Skawina <art.08.09@...il.com>,
Linux Kernel <linux-kernel@...r.kernel.org>,
<linux-usb@...r.kernel.org>
Subject: Re: reading errors on JMicron JM20337 USB-SATA
On Mon, 3 Aug 2009, Lev A. Melnikovsky wrote:
> On Mon, 3 Aug 2009 at 6:25pm, Alan Stern wrote:
>
> AS> You are correct except for the term "indefinitely". The retries _will_
> AS> stop if you wait long enough. Unfortunately, because of all the nested
> AS> retry loops in the SCSI drivers and at the application level, you may
> AS> have to wait as long as half an hour.
> It was a simple test, I've plugged the USB cable off after two hours, this
> is apparently not long enough:
>
> [root ~]# time dd if=/dev/sdf of=/dev/null skip=61395120 count=1 bs=512
> dd: reading `/dev/sdf': Input/output error
> 0+0 records in
> 0+0 records out
> 0 bytes (0 B) copied, 7550.12 s, 0.0 kB/s
> dd: closing input file `/dev/sdf': Bad file descriptor
>
> real 125m50.119s
> user 0m0.000s
> sys 0m0.000s
Okay, it looks like I was wrong and this particular kind of error will
indeed cause unending retries.
Either way, like I said before, you should complain about this to the
SCSI people. They are the ones who can fix it. (You can CC: linux-usb
too, just to keep us in the loop.)
Tell them that scsi_end_request() mustn't call scsi_requeue_command()
if bytes == 0.
Alan Stern
--
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