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-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html