Messages in this thread Patch in this message | | | Date | Wed, 5 Nov 2008 11:51:41 -0500 (EST) | From | Alan Stern <> | Subject | Re: usb hdd problems with 2.6.27.2 |
| |
On Wed, 5 Nov 2008, Luciano Rocha wrote:
> > Please rerun the A+B and A+B+C tests, but this time using the B' patch > > below instead of B. > > New test data in the bugzilla.
Sorry, dumb mistake on my part. B'' is below. It is the same as B' except for one character.
Alan Stern
Index: 2.6.27.4/drivers/scsi/scsi_lib.c =================================================================== --- 2.6.27.4.orig/drivers/scsi/scsi_lib.c +++ 2.6.27.4/drivers/scsi/scsi_lib.c @@ -611,6 +611,11 @@ static void scsi_requeue_command(struct struct request *req = cmd->request; unsigned long flags; + if (--req->retries < 0) { + blk_end_request(req, -EIO, blk_rq_bytes(req)); + scsi_next_command(cmd); + return; + } scsi_unprep_request(req); spin_lock_irqsave(q->queue_lock, flags); blk_requeue_request(q, req); @@ -690,6 +695,8 @@ static struct scsi_cmnd *scsi_end_reques * leftovers in the front of the * queue, and goose the queue again. */ + if (bytes > 0) /* Made progress */ + ++req->retries; scsi_requeue_command(q, cmd); cmd = NULL; }
| |